2017-09-05 24 views
0

surefireプラグインを使用してプロジェクトでテストを実行していて、テストに失敗した場合でも "site"ゴールを使用してレポートを生成する必要があります。テスト失敗後に次のゴールを強制的に実行する方法

デフォルトでは、テストが失敗した場合には確実にビルドが失敗し、それ以上の目標は実行されません。 私が確実なために、以下の構成を設定しているので:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>${surefire.version}</version> 
     <configuration> 
      <testFailureIgnore>true</testFailureIgnore> 
     </configuration> 
</plugin> 

これがうまく機能し、私ができるように、「サイト」の目標は、常に実行されますが、このような場合には、ビルドのステータスが常に「成功」​​です電子メール通知を設定しません。

surefireプラグインの失敗を無視せずに "テスト"の目標の次の目標を実行する適切な方法はありますか?

+0

を失敗するを実行することができます。 – Stultuske

答えて

0

あなたが使用することができます

  • -DskipTests=trueをビルドが後のテストフェーズを継続し、唯一の失敗させるために、テストの失敗
  • --fail-at-endを無視する完全
  • -Dmaven.test.failure.ignore=trueをテスト実行をスキップする(存在する場合テストの失敗)が完了サイクルが完了したとき

このst atement ...

これはうまく動作し、「サイト」の目標は常に実行されますが、この場合、ビルドのステータスは常に「成功」​​になり、電子メール通知を設定できません。

... --fail-at-endとしたいと思います。ドキュメントによると、その動作は次のとおりです。

--fail・アット・エンド - 特定のモジュールのビルドが失敗した場合、原子炉の残りの部分を継続し、最後の代わりに

で失敗したすべてのモジュールを報告
0

私はsurefireプラグインを使用してプロジェクトでテストを実行しており、テストに失敗した場合でも「サイト」目標を使用してレポートを生成する必要があります。

私は右のあなたの質問を理解していれば、何をやっていることは、単にmvn site(またはmvn site:stage)の目標を実行するのと同じです!テストを実行した後にサイトが生成され、失敗したレポートと失敗したレポートが含まれます(構成されている場合)。あなたが「プロジェクトをテスト」するのではなく、「テスト結果を使ってプロジェクトのサイトを構築する」ことが成功した場合には失敗しません。

...ビルドのステータスは常に「成功」​​であり、電子メール通知を設定できません。

あなたの説明があれば、送信通知はビルドステータスに基づいており、通知には生成されたサイトへのリンクがあると仮定します。その場合は、私はそのことを考えることができる3つのオプションがあります何をしたいあなたを与えることがあります。というし、(通常は${basedir}/target/surefire-reportsで)確実なプラグインの出力ビルド状況によってトリガーされる

  • 変更通知を。単に実行することができますmvn site
  • 出力ファイルを確実にパブリッシュ/共有し(必要に応じて変換する)、サイトを指すのではなく通知をポイントするようにします。そして、あなたは単にあなたが常にテストをせずに実行することができます最初に(テストを実行し、レポートを作成するための障害を無視して)、サイトを生成し、(再び)テストを実行しますmvn test
  • 実行mvn site testビルド
関連する問題