2012-01-12 15 views
12

私のpomがパッケージタイプ "pom"に設定されているときに私のユニットテストを実行する際に問題があります。最初は、このプロジェクトには何の目標も必要ないと言っていたので、maven-surefire-pluginをpom.xmlに追加してテストフェーズをmaven-surefire-pluginテストの目標に結びつけました。mavenパッケージタイプ "pom"でテストを実行

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.9</version> 
      <executions> 
       <execution> 
        <phase>test</phase> 
        <goals> 
         <goal>test</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

今、確実なプラグインが実行されつつあるが、それは実行の際にテストが存在しないと言います。パッケージの種類をjarに変更してmvn testを実行すると、テストファイルが取得されます。

mvn test -Xを実行すると、正しい場所である "testSourceDirectory = C:\ dev \ dsl \ src \ test \ java"と表示されます。テストの場所はパッケージタイプ "pom"と "jar"で異なるのですか?私は、確信しているプラ​​グインに

  <configuration> 
       <testSourceDirectory>src/test/java</testSourceDirectory> 
      </configuration> 

を追加しようとしましたが、全く助けにはなりませんでした。

+3

Pomパッケージはメタデータのみのプロジェクト用ですか、いいえ?あなたは何をしようとしているのですか? –

+1

私は実際にこの同じシナリオに入っています - 私はシステムテストのモジュールを持っていますが、実行したいのですが、その中からjarファイルを生成しません。しかし、実際にはpom以外のパッケージングタイプを指定しなくても、テストを実行することはできません。どうすればいいでしょうか(別の質問に値するでしょう)。 – whaley

+0

@DaveNewtonこれはJavaアプリケーションではないため、これを実行したかったので、アーティファクトとしてデータベーススクリプトを含むzipファイルを生成したかったのです。 – user977208

答えて

10

pomのパッケージ化を使用している場合、Daveにコメントされているように、以下のライフサイクル目標のみが実行されます。関連するマニュアルはthisを参照してください。

  • パッケージ
  • あなたはそれが他の目標を実行する必要がある場合は、明示的に指定する必要があります

を展開

  • をインストールします。たとえば、

    mvn clean compiler:testCompile surefire:test 
    
  • +0

    ありがとう!私はそれがテスト段階に縛られていないことを知っていましたが、私はコンパイラを実行する必要があると私の頭の中でクリックしませんでした:testCompile。 – user977208

    +0

    もう1つ質問があります。私はコンパイラをテストフェーズにバインドすることができたと思ったが、うまくいかないようだ。助言がありますか? org.apache.maven.plugins 達人コンパイラ・プラグイン 2.3.2 テストコンパイル testCompile user977208

    +0

    私は2つのmaven-compiler-pluginセクションを持っていたので、オーバーライドされました – user977208

    関連する問題