Ich verwende require-js, um Abhängigkeiten in meinem Java-Script-Projekt zu modellieren. Ich benutze Jasmine, um BDD-formatierte Testfälle zu schreiben und das Jasmine-Maven-Plugin: 1.1.0, um diese Tests im Headless-Modus auszuführen.jasmine-maven-plugin und require-js führen zu Pfadproblemen
Dies ist meine Quelle Projektstruktur
project/
| src/main/javascript
| | api/*.js
| | main.js
| src/test/javascript
| | spec/*spec.js
Das ist mein Webapp pom Jasmin Konfiguration:
<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>
Während der Maven alle js bauen Quellen kopiert/Jasmin/src Ziel. Die runner.html, die sich auf meine main.js bezieht, ist auf target/jasmine.
Nun ist das Problem, dass meine Require-Js-Module ihre Abhängigkeiten relativ zu der main.js definieren, während der Runner im maven-Testlauf davon ausgeht, dass sie relativ zu target/jasmine/runner.html sind. Da meine Module den zusätzlichen jasmine/src-Ordner nicht kennen (und nicht wissen müssen), ist das IMHO ein Problem.
ich die folgende Fehlermeldung, wenn ich mvn sauber laufen zu installieren:
fehlgeschlagen Ziel com.github.searls auszuführen: Jasmin-Maven-Plugin: 1.1.0: Test (default) auf Projekt MyWebApp: Die Jasmin-maven-Plugin stellte eine Ausnahme: 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: \ Jenkins \ Jobs \ job1 \ Arbeitsplatz \ MyWebApp \ target \ Jasmin \ api \ data-util.js (Das System kann den angegebenen Pfad nicht finden können)
jemand da draußen einige Ahnung, um zu arbeiten, oder dass konfigurieren?