2015-11-25 21 views
6

私は、マルチモジュールプロジェクトを持っていると私はフェイルセーフこのように、ルートポンポンで定義されています:「mvn verify」で統合テストを実行できないのはなぜですか?

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-failsafe-plugin</artifactId> 
    <version>2.19</version> 
    <configuration> 
     <includes> 
      <include>**/*IntegrationTest.java</include> 
      <include>**/*JourneyTest.java</include> 
      <include>**/*CucumberFeatureTest.java</include> 
     </includes> 
    </configuration> 
    <executions> 
     <execution> 
      <goals> 
       <goal>integration-test</goal> 
       <goal>verify</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.19</version> 
    <configuration> 
     <excludes> 
      <exclude>**/*IntegrationTest.java</exclude> 
      <exclude>**/*JourneyTest.java</exclude> 
      <exclude>**/*CucumberFeatureTest.java</exclude> 
     </excludes> 
    </configuration> 
</plugin> 

フェイルセーフが私の他のPOMSのどこにも定義されていません。 mvn verifyを実行すると、統合テストがスキップされます(ユニットテストが実行されます)。しかし、mvn test-compile failsafe:integration-testを実行すると、統合テストが実行されます。

私はフェイルセーフがこれらの状況の両方で実行されることを想定しています。だから私はmvn verifyと入力するとなぜ動かないのですか?

UPDATE:ちょうどこれは、これらのタグに巻き付けたことに気づい:

私はこのように感じる
<build> 
    <pluginManagement> <!-- oops --> 
     <plugins> 
      <plugin> 

が原因を説明していますが、したいようユニットテストがまだ実行して、なぜ私はわかりませんmvn verifymvn testが必要です。この点で確信はなぜフェールセーフと違うのですか?

+0

私はシュアファイアは、標準POMに含まれているが、フェイルセーフではないと信じています。 – chrylis

答えて

5

フェイルセーフの統合テストの目標をMavenの検証フェーズにバインドする必要があります。

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-failsafe-plugin</artifactId> 
     <version>2.19</version> 
     <configuration> 
      <includes> 
       <include>**/*IntegrationTest.java</include> 
       <include>**/*JourneyTest.java</include> 
       <include>**/*CucumberFeatureTest.java</include> 
      </includes> 
     </configuration> 
     <executions> 
      <execution> 
      <goals> 
       <goal>integration-test</goal> 
       <goal>verify</goal> 
      </goals> 
      </execution> 
     </executions> 
    </plugin> 
+0

その変更は結果に影響を与えませんでした。元の質問を更新してこれを含める –

+0

はい、フェイルセーフプラグインを実行にバインドするのが正しい解決策です。残念ながら、Mavenの多くのドキュメントと同様、十分に指摘されているわけではありません。この設定は、[failsafe Pluginの公式ドキュメント](https://maven.apache.org/surefire/maven-failsafe-plugin/usage.html)に記載されています。 – rdguam

0
To activate plugin for IntegrationTest, 
add declaration maven-surefire-plugin at plugins/plugin: 

    <plugins> 
      ... 
      ... 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
      </plugin> 
    </plugins> 
</build>