複数のモジュールを含むプロジェクトがあります。すべてのテストに合格すると、Mavenテストがすべてを実行します。
最初のモジュールでテストが失敗すると、mavenは次のプロジェクトに進みません。 Surefireの設定でtestFailureIgnoreをtrueに設定しましたが、役に立ちません。
Mavenですべてのテストを実行するにはどうすればよいですか?
「-fae」パラメーターが見つかりました。これにより、Mavenはすべてのテストを実行し、失敗時に停止しません。
ドキュメントから:
-fae
、--fail-at-end
その後のビルドのみ失敗します。影響を受けていないすべてのビルドを続行できるようにします
-fn
、--fail-never
プロジェクトの結果に関係なく、ビルドに失敗しない
したがって、oneモジュールをテストする場合は、-fae
を使用しても安全です。
それ以外の場合、複数のモジュールがあり、すべてのモジュールをテストする場合(失敗したテストモジュールに依存するモジュールも含む)、mvn clean install -fn
を実行する必要があります。-fae
は、テストに失敗したモジュールを続行します(他のすべてのテストを実行します)が、それに依存するすべてのモジュールはスキップされます。
Surefire 2.6でテストし、testFailureIgnore=true
でsurefireを設定できますか。または、コマンドラインで:
mvn install -Dmaven.test.failure.ignore=true
ルートプロジェクトのpom.xmlにsurefireプラグインの次の設定を追加してみてください。
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
簡単な答え:
mvn -fn test
ネストされたプロジェクトビルドで動作します。