Javascript jasmine maven插件和require js导致路径问题

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>

我正在使用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>
    <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”

您可以在以下位置找到所有可能的参数:

以及