2

私は最近、ハドソンが問題ではないことを発見しました。実際には、ハドソンではなく、マルチモジュール ビルドがビルドの失敗を引き起こしたため、Maven 自体が原因でした。問題が実際に存在する場所に気づいていませんでした。

元の質問はここに残します。


私はいくつかの統合テストを実行するためにfailsafe-maven-pluginを使用しています。フェイルセーフと確実な違いは、フェイルセーフは失敗を許容し、ビルドを失敗させないことです。

私の夜間ビルドでは、統合テストが使用するサービスがダウンしている可能性があります。通常のビルドでは、統合テストの失敗が許可されているため、フェイルセーフ プラグインによってビルドが続行されます。しかし、ハドソンはこれを尊重していないようで、ビルドを停止して雨を降らせます。

-DskipITs を使用して、ナイトリー ビルドでフェイルセーフ テストをオフにしようとしました。マルチモジュールビルドを使用しているため、これは失敗しているようです。

特定のモジュールの一部であっても、これらのテストが失敗する可能性があることをMavenに尊重させる方法についてのアイデアはありますか?

プロジェクトの構造は次のとおりです。

-parent
\-jar
\-jar (where integration tests run)
\-war
\-ear
4

3 に答える 3

0

failsafe-maven がビルドに失敗しないというあなたの最初の仮定が正しいとは思いません。失敗したテストは、単体テストを実行する確実なプラグインとは異なり、統合テストフェーズの完了を停止しません。これにより、統合後のテストフェーズを実行できるようになるため、テスト環境を破棄できます (アプリ サーバーのシャットダウンなど)。

この後、検証フェーズが実行され、統合テストの結果が確認されます。これらのテストのいずれかが失敗した場合 Maven はビルドの失敗を返します。Hudson はこれを正しく検出するため、ビルドが壊れているというフラグを立てることができます。

于 2011-02-23T15:12:54.683 に答える
0

Maven プロファイルを使用して、Maven フェイルセーフ プラグインの検証目標をオン/オフにします。

于 2011-08-12T15:38:28.643 に答える
0

プロファイルを使用して、さまざまな環境 (ナイトリー ビルド、リリース、通常の開発者ビルドなど) ごとに少し異なるビルドを作成できます。

また、Maven のバージョンを更新してみます。最近、マルチモジュール ビルドに関連する修正はほとんどありませんでした。

于 2010-03-29T00:15:40.617 に答える