Я использую require-js для моделирования зависимостей в моем проекте java-скрипта. Я также использую jasmine для написания тестовых случаев в стиле BDD и jasmine-maven-plugin: 1.1.0 для выполнения этих тестов в режиме без головы.
Это моя исходная структура проекта
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>
Во время сборки maven все js-источники копируются в target / jasmine / src. Файл runner.html, который ссылается на мой main.js, находится в target / jasmine.
Теперь проблема в том, что мои модули require-js определяют свои зависимости относительно main.js, тогда как в тестовом прогоне maven бегун предполагает, что они относятся к target / jasmine / runner.html. Так как мои модули не знают (и не должны знать) о дополнительной папке jasmine / src, IMHO это проблема.
При запуске mvn clean install появляется следующее сообщение об ошибке:
Не удалось выполнить цель
com.github.searls: jasmine-maven-plugin: 1.1.0: тест (по умолчанию) в проекте
mywebapp: плагин jasmine-maven-
исключение: java.lang.RuntimeException:
org.openqa.selenium.WebDriverException:
com.gargoylesoftware.htmlunit.ScriptException: Wrapped
com.gargoylesoftware.htmlunit.ScriptException: Wrapped
com.gargoylesoftware.htmlunit.ScriptException: Wrapped
com.gargoylesoftware.htmlunit.ScriptException: Wrapped
com.gargoylesoftware.htmlunit.ScriptException: Wrapped
java.lang.RuntimeException: java.io.FileNotFoundException:
C: \ Дженкинс \ JOBS \ job1 \ рабочее пространство \ mywebapp \ целевых \ жасмин \ апи \ Data-util.js
(Система не может найти указанный путь)
У кого-нибудь есть идея обойти или настроить это?