Maven Surefireプラグインをさまざまなグループでテストおよび統合テストに使用する方法は?
-
03-07-2019 - |
質問
integrationTest
をタグ付けして、プラグインを2回実行することです。グループtest
を除くゴールintegration-test
およびグループpom.xml
のみを含むゴールmvn integration-test
に対して。
両方のプラグインを実行するためのマテリアルを見つけました目標とそれは機能しますが、2回目の実行のグループは機能しません(テストは実行されません)。
これは、私のmvn test
のビルド要素のプラグイン設定です:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>integrationTest</excludedGroups>
<reportFormat>brief</reportFormat>
<trimStackTrace>true</trimStackTrace>
<useFile>false</useFile>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<groups>integrationTest</groups>
<excludedGroups/>
<reportsDirectory>${project.build.directory}/surefire-reports/integration</reportsDirectory>
</configuration>
</execution>
</executions>
</plugin>
アイデアはありますか? <=>はすべての単体テストを期待どおりに実行します(グループ<=>を除く)が、2回目のテスト実行では次のように書き込みます。
TestSuiteの実行
テスト実行:0、失敗:0、エラー:0、スキップ:0、経過時間:0.562秒
<=>の結果は予想どおりであり、テストが実行され、グループ<=>は無視されます。
解決
わかった-刺激的な設定の実装!
<excludedGroups/>
は<excludedGroups>integrationTest</excludedGroups>
をオーバーライドしません。代わりに、(不明な)グループを指定する必要があります。たとえば、<excludedGroups>none</excludedGroups>
。
他のヒント
フェイルセーフプラグインは、これを行う最適な方法です。 (この質問を投稿したときには利用できなかった可能性があります)。ビルドライフサイクルに統合テストフェーズを追加します。これにより、テストの前後にセットアップおよびティアダウンアクティビティを実行できます。これは、たとえば、埋め込みコンテナの管理に役立ちます。