如何在Jasmine / Maven自动生成的Manual SpecRunner.html中配置我的javascript文件的路径?

时间:2011-05-04 16:20:40

标签: javascript maven maven-plugin maven-3 jasmine

我认为这个问题大部分都是如此。我有一个由maven / jasmine插件创建的自动生成的ManualSpecRunner.html文件,我已经通过使用它将自己置于可部署的.war中:

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

但是,ManualSpecRunner.html中js文件的所有链接都是硬编码文件:///引用 - 这有点精神,我希望它们只是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中列出的各种配置参数的更多说明是有帮助的,所以如果我正在做的话我可以解决它错了或者是不可能的!)

有什么建议吗?

[P.S。我已经更改了一些路径名称,因为它们中有敏感信息,所以请忽略它们的奇怪之处!]

1 个答案:

答案 0 :(得分:4)

我想我理解你困惑的根源。看起来你正试图将jasmine-maven-plugin的目标指向项目的打包* .war文件中的目录,这样你就可以在部署到代码之后运行你的规范。服务器,这是正确的吗?

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

所有这些都说,如果我正确地阅读你的意图,我认为构建第三个可以与应用程序一起部署并远程执行的规范运行器是一个很酷的功能。 (特别是如果该项目的Jasmine规范是功能性/集成而不是孤立的单元测试。)不幸的是,这不是项目所做的事情。

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

有意义吗?