Javascript jasmine maven插件和require js导致路径问题
我正在使用requirejs对java脚本项目中的依赖项进行建模。我还使用jasmine编写BDD样式的测试用例,并使用jasmine maven插件1.1.0在headless模式下执行这些测试 这是我的源项目结构Javascript jasmine maven插件和require js导致路径问题,javascript,maven,requirejs,jasmine,Javascript,Maven,Requirejs,Jasmine,我正在使用requirejs对java脚本项目中的依赖项进行建模。我还使用jasmine编写BDD样式的测试用例,并使用jasmine maven插件1.1.0在headless模式下执行这些测试 这是我的源项目结构 project/ | src/main/javascript | | api/*.js | | main.js | src/test/javascript | | spec/*spec.js 这是我的webapp pom jasmine配置: <plugin>
project/
| src/main/javascript
| | api/*.js
| | main.js
| src/test/javascript
| | spec/*spec.js
这是我的webapp pom jasmine配置:
<plugin>
<groupId>com.github.searls</groupId>
<artifactId>jasmine-maven-plugin</artifactId>
<version>1.1.0</version>
<executions>
<execution>
<goals>
<goal>generateManualRunner</goal>
<goal>resources</goal>
<goal>testResources</goal>
<goal>test</goal>
<goal>preparePackage</goal>
</goals>
</execution>
</executions>
<configuration>
<specRunnerTemplate>REQUIRE_JS</specRunnerTemplate>
<scriptLoaderPath>lib/require-jquery.js</scriptLoaderPath>
<sourceIncludes>
<include>lib/require-jquery.js</include>
<include>lib/underscore.js</include>
<include>lib/backbone.js</include>
<include>lib/d3.js</include>
<include>lib/d3.layout.js</include>
<include>lib/bootstrap.js</include>
<include>main.js</include>
</sourceIncludes>
<preloadSources>
<source>lib/require-jquery.js</source>
<source>lib/underscore.js</source>
<source>lib/backbone.js</source>
<source>lib/d3.js</source>
<source>lib/d3.layout.js</source>
<source>lib/bootstrap.js</source>
<source>main.js</source>
</preloadSources>
<browserVersion>FIREFOX_3_6</browserVersion>
</configuration>
</plugin>
com.github.searls
jasmine maven插件
1.1.0
发电机自动转轮
资源
测试资源
测试
预包装
需要
lib/require-jquery.js
lib/require-jquery.js
lib/underline.js
lib/backbone.js
lib/d3.js
lib/d3.layout.js
lib/bootstrap.js
main.js
lib/require-jquery.js
lib/underline.js
lib/backbone.js
lib/d3.js
lib/d3.layout.js
lib/bootstrap.js
main.js
FIREFOX_3_6
在maven构建期间,所有js源代码都被复制到target/jasmine/src。引用my main.js的runner.html位于target/jasmine
现在的问题是,我的requirejs模块定义了它们相对于main.js的依赖关系,而在maven测试运行中,运行程序假定它们相对于target/jasmine/runner.html。由于我的模块没有(也一定没有)意识到额外的jasmine/src文件夹,这是一个问题
我在运行mvn clean install时收到以下错误消息:
未能执行目标
searls:jasmine maven插件:1.1.0:project上的测试(默认)
mywebapp:jasmine maven插件遇到了
异常:java.lang.RuntimeException:
org.openqa.selenium.WebDriverException:
com.gargoylesoftware.htmlunit.ScriptException:已包装
com.gargoylesoftware.htmlunit.ScriptException:已包装
com.gargoylesoftware.htmlunit.ScriptException:已包装
com.gargoylesoftware.htmlunit.ScriptException:已包装
com.gargoylesoftware.htmlunit.ScriptException:已包装
java.lang.RuntimeException:java.io.FileNotFoundException:
C:\Jenkins\jobs\job1\workspace\mywebapp\target\jasmine\api\data-util.js
(系统找不到指定的路径)
有没有人有办法解决或配置这个问题?与此同时,我通过配置maven resources插件找到了解决方法或修复方法(不确定)
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-js-files</id>
<phase>generate-test-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/jasmine</outputDirectory>
<resources>
<resource>
<directory>src/main/javascript</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/webapp</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/test/webapp</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
maven资源插件
复制js文件
生成测试资源
复制资源
${project.build.directory}/jasmine
src/main/javascript
假的
src/main/webapp
假的
src/test/webapp
假的
我将该配置放在一个单独的配置文件中,在测试期间激活该配置文件。我看到您有lib/require-jquery.js,但您的文件树没有显示“lib”的位置。是相对于加载的,但您没有。也许这是你的问题。我写了一篇简短的帖子,总结了我使用jasmine maven插件和Require.js的经验。在它里面我有我的pom.xml。我的pom.xml看起来比你的小了一点,但是这个插件对我来说很好。也许我的帖子会有所帮助 我面临同样的问题: java.io.FileNotFoundException 带着安魂曲和茉莉花 但是,您不必使用maven资源插件并将js文件破解到第二个输出目录 我用了“srcDirectoryName” 您可以在以下位置找到所有可能的参数: 以及