2009-09-02 9 views
2

私は最近、ハドソンが問題ではないことを発見しました。実際には、マルチモジュールビルドがHudsonではなくビルドの失敗を引き起こしていたため、Maven自体でした。私はちょうどその問題が実際にどこに存在しているか気づいていなかった。Maven Multi-Moduleビルドはfailsafe-maven-pluginを尊重しませんか?

ここに元の質問を残してください。


私はfailsafe-maven-pluginを使っていくつかの統合テストを行っています。フェイルセーフと確信の違いは、フェイルセーフは失敗を許可し、ビルドは失敗しないことです。

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

夜間に-DskipITsを使用してturn the failsafe tests offを試しました。これは私が複数のモジュールをビルドしているので失敗するようです。

Mavenに特定のモジュールの一部であっても、これらのテストを尊重する方法についてのアイデアはありますか?次のように

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

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

これらの統合テストは、特定のディレクトリまたは専用モジュールにありますか(これは私が理解したものではありません)。そうでない場合は、どうしてですか?マルチモジュール構造についてもう少し詳しく教えてください。あなたは夜間のビルドのために何を目標にしていますか? –

+0

私は実際にトップレベルの親pomで夜間ベースでインストールを実行しています。 –

答えて

0

あなたは作るためにプロファイルを使用することができます(通常、開発者が構築するというように、リリース、ナイトリービルド)異なる環境のために少し異なって構築します。

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

0

私は、failsafe-mavenがビルドに失敗しないというあなたの元々の仮定は信じられません。テストに失敗しても、統合テストのフェーズが完了することがなくなります。これは、単体テストを実行する確実なプラグインとは異なります。これにより、統合後テストフェーズが実行されるため、テスト環境が破損する可能性があります(アプリケーションサーバーのシャットダウンなど)。

この後、フェーズが実行され、統合テストの結果が表示されます。これらのテストのいずれかが失敗した場合は、 Mavenがビルドに失敗し、Hudsonが正しく選択してビルドに壊れているとフラグが立てられます。

関連する問題