我认为这个问题说明了大部分问题。 我有一个自动生成的 ManualSpecRunner.html 文件,该文件由 maven/jasmine 插件创建,我通过以下方式将其放入可部署的 .war 中:
<jasmineTargetDir>${basedir}/pathForMyWebapp</jasmineTargetDir>
但是,ManualSpecRunner 中指向 js 文件的所有链接.html都是硬编码 file:///引用 - 这有点精神,我希望它们只是 webapp 中文件的相对路径,即
目前它给了我这条路径:
file:///home/username/code/HEAD/pathForMyWebapp/js/yui.js
而我需要它拥有更简单的
/pathForMyWebapp/js/yui.js
我尝试更改 maven 脚本中的另外两个变量,但似乎都没有达到预期的效果,这些配置选项都没有满足我的需要,第二个似乎没有效果:
<jsSrcDir>/pathForMyWebapp</jsSrcDir>
也不
<jsTestSrcDir>/pathForMyWebapp</jsTestSrcDir>
我已经浏览了文档,但认为我一定错过了一些东西(此外,关于 https://github.com/searls/jasmine-maven-plugin/blob/master/src/main/java/com/github/searls/jasmine/AbstractJasmineMojo.java 中列出的各种配置参数的更多注释会有所帮助,这样我就可以弄清楚我是否做错了或者如果不可能!
有什么建议吗?
[附言我已经更改了一些路径名,因为它们中有敏感信息,所以请忽略它们的奇怪之处!
我理解你困惑的根源。看起来您正在尝试将 jasmine-maven-plugin 的目标定向到项目打包的 *.war 文件中的目录,以便您可以在将代码部署到服务器后针对代码运行您的规范,对吗?
不幸的是,该插件在设计时并未考虑到这种用途。jasmineTargetDir
目录通常保留其默认值 target/jasmine
,并且不打算与您的应用程序捆绑在一起(它类似于 maven-surefire-plugin 为 Java 单元测试生成的target/surefire-reports
)。因此,ManualSpecRunner.html
中的脚本标记指向无效位置的原因是,生成该文件是为了从构建项目的工作站的浏览器中的本地文件系统运行(以促进TDD)。
综上所述,如果我没看错你的意图,我认为构建第三个规范运行器将是一个很酷的功能,它可以与应用程序一起部署并远程执行。(特别是如果项目的 Jasmine 规范是功能/集成的,而不是孤立的单元测试。不幸的是,这不是该项目所做的事情。
恐怕就目前而言,如果您需要捆绑 jasmine 测试并在部署的服务器上执行它们,则需要将 ManualSpecRunner.html
和 jasmine 复制到您的 src/main/webapp
中,修复脚本标签引用,然后在添加和删除文件时手动维护它。
有意义?