2012-03-28 8 views
4

Javaスクリプトプロジェクトの依存関係をモデル化するためにrequire-jsを使用しています。私はジャスミンを使ってBDDスタイルのテストケースとjasmine-maven-plugin:1.1.0を作成し、これらのテストをヘッドレスモードで実行します。jasmine-maven-pluginとrequire-jsによりパスの問題が発生する

これは私のソースプロジェクト構造

project/ 
| src/main/javascript 
| | api/*.js 
| | main.js 
| src/test/javascript 
| | spec/*spec.js 

であるこの私のWebアプリケーションポンポンジャスミンの設定です:

<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の中には、ソースは/ジャスミン/ SRCをターゲットにコピーされているすべてのjsを構築します。私のmain.jsを参照するrunner.htmlはtarget/jasmineにあります。

問題は、私のrequire-jsモジュールがmain.jsに対する依存関係を定義しているのに対して、mavenテスト実行では、ランナーはターゲット/ jasmine/runner.htmlに相対的であるとみなします。私のモジュールは、追加のjasmine/srcフォルダ(IMHO)を認識しているわけではありません。

私はクリーンインストールMVN実行したときに、私は、次のエラーメッセージが表示されます。プロジェクトのテスト(デフォルト):ジャスミン-mavenの-プラグイン:1.1.0

ゴール com.github.searlsの実行に失敗しました mywebapp:java.lang.RuntimeException:: org.openqa.selenium.WebDriverException: com.gargoylesoftware.htmlunit.ScriptException:ラップ com.gargoylesoftware.htmlunit.ScriptException: をラップジャスミンのmaven-pluginのは 例外が発生しましたcom.gargoylesoftware.htmlunit.ScriptException:ラップされた com.gargoylesoftware.htmlunit.ScriptException:ラップ com.gargoylesoftware.htmlunit.ScriptException:ラップ java.lang.RuntimeException:java.io.FileNotFoundException: C:\ジェンキンス\ジョブJOB1の\ワークスペース\ mywebappの\ターゲット\ジャスミン\ \ APIの\データ-util.js (システムは指定されたパスを見つけることができません)

回避やそれを構成するためのいくつかのアイデアを持ってそこに誰?一方

答えて

3

私は同じ問題に直面:requireJSとジャスミン

と java.io.FileNotFoundException

をしかし、あなたはのmaven-リソース・プラグインを使用してのJSファイルをハックする必要はありません2番目の出力ディレクトリ。私はあなたがhttps://github.com/searls/jasmine-maven-plugin/tree/master/src/test/resources/examples

の下にあるすべての https://github.com/searls/jasmine-maven-plugin/blob/master/src/main/java/com/github/searls/jasmine/mojo/AbstractJasmineMojo.java

の可能性のparamsと高度な例を見つけることができます 'srcDirectoryName'

を使用

1

は、私は私がテスト中に活性化させる別のプロファイルにその構成を置く

<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-リソース設定することで、回避策または修正(わからない)を見つけ。

0

lib/require-jquery.jsがあることがわかりましたが、ファイルツリーに "lib"がどこにあるかはわかりません。は相対的に読み込まれますが、あなたは持っていません。多分それがあなたの問題です。 jasmine-maven-pluginの経験を要約し、Require.jsを使用して簡単な投稿を書いた。その中に私のpom.xmlがあります。私のpom.xmlはあなたより少し小さいようですが、プラグインはうまく動作します。多分私のポストが助けになるでしょう。 Jasmine+Maven+Requirejs+Coverage

関連する問題