Maven SurefireプラグインとMaven Failsafeプラグインの違いは何ですか?


回答:


140

簡単な言葉では、フェイルセーフプラグインが動作するように設計されて統合テストをシュアを実行しながら、ユニットテストを

これはMaven FAQでさらに説明されています:

  • maven-surefire-pluginユニットテストを実行するために設計されており、いずれかのテストが失敗すると、ビルドはすぐに失敗します。

  • maven-failsafe-plugin統合テストを実行するために設計されており、実際にテストを実行することによるテストの失敗がある場合、ビルドの失敗を切り離します。

    フェイルセーフ」という名前は、surefireの同義語であることと、失敗したときに安全な方法で失敗することを意味するために選択されました。

    フェイルセーフプラグインは 2つのゴールを持っています:

以下も参照してください。


4
興味深い質問は、その理由です。多くのビルドツールは、これを間違いなくかなり人工的で限定的な区別をしなくても完全に機能します。両方のプラグインを一緒に構成し、一貫した方法でそれらのレポートを吸収することは、非常にPITAです。
ラファエル

そして、いいえ、他の回答で述べられている違いは、フィルターとフラグであるべきもののための複数のツールを持つ十分な理由を提供しません。
ラファエル

27

https://maven.apache.org/surefire/maven-failsafe-plugin/から、SurefireとFailsafeの違いは失敗の仕方だと思います

Surefireプラグインを使用してテストを実行する場合、テストが失敗すると、ビルドは統合テストフェーズで停止し、統合テスト環境が正しく破壊されません。

Failsafeプラグインは、アプリケーションの統合テストを実行するための統合テストおよびビルドライフサイクルの検証フェーズで使用されます。Failsafeプラグインは、統合テストフェーズ中にビルドに失敗しないため、統合後テストフェーズを実行できます。


2
それから質問は次のようになります:彼らが間違った状態で物事を残すことができると私たちに言っているのに、なぜSurefireを使うのですか?
user118967

6

私の国では、このFAQにアクセスするために「maven failsafe maven surefire」を検索したときの2番目のgoogle結果:maven-failsafe-pluginとmaven-surefire-pluginの違い

maven-surefire-pluginは単体テストを実行するために設計されており、いずれかのテストが失敗すると、ビルドはすぐに失敗します。

maven-failsafe-pluginは、統合テストを実行するために設計されており、テストの失敗があった場合にビルドの失敗を切り離して、実際にテストを実行しません。」

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.