4

我认为这个问题说明了大部分。我有一个由 maven / jasmine 插件创建的自动生成的 ManualSpecRunner.html 文件,我已经通过以下方式将其放入可部署的 .war 中:

<jasmineTargetDir>${basedir}/pathForMyWebapp</jasmineTargetDir>

但是,ManualSpecRunner.html 中所有指向 js 文件的链接都是硬编码的 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应该做的会有帮助,所以我可以弄清楚我做错了还是不可能!)

有什么建议么?

[ps 我已经更改了一些路径名称,因为它们包含敏感信息,所以请忽略它们的奇怪之处!]

4

1 回答 1

4

我想我理解你困惑的根源。看起来您正在尝试将 jasmine-maven-plugin 的目标定向到项目打包 *.war 文件中的目录,以便在将代码部署到服务器后运行规范,对吗?

不幸的是,该插件的设计并未考虑到这种用途。该jasmineTargetDir目录通常保留其默认值,target/jasmine并且不打算与您的应用程序捆绑在一起(类似于target/surefire-reportsmaven-surefire-plugin 为 Java 单元测试生成的)。因此,脚本标记ManualSpecRunner.html指向无效位置的原因是因为该文件是生成的,以便在构建项目的工作站的浏览器中从本地文件系统运行(以促进 TDD)。

综上所述,如果我没看错你的意图,我认为构建第三个规范运行器将是一个很酷的功能,该运行器可以与应用程序一起部署并远程执行。(特别是如果项目的 Jasmine 规范是功能/集成而不是孤立的单元测试。)不幸的是,这还不是项目所做的事情。

恐怕现在,如果您需要捆绑 jasmine 测试并在部署的服务器上执行它们,您需要将ManualSpecRunner.htmljasmine 复制到您的src/main/webapp,修复脚本标记引用,然后在添加文件时手动维护它和删除。

有道理?

于 2011-05-05T01:42:37.697 回答