0

マルチモジュールのMavenプロジェクトがあります。すべてのモジュールには、単体テストがあります。すべてのモジュールの前にクリーンインストールテストを実行し、1つのモジュールのすべてのテストが成功すると、正常にビルドされます。1つのテストが失敗した場合、そのモジュール内の他のすべてのテストは正常に実行されます(または、一部は正常に実行され、他は失敗しました)。最初の障害ユニットテストが配置されたモジュールのビルドが失敗しました。他のモジュールはスキップされます。最初にすべてのモジュールですべての単体テストを実行し、その後、失敗したテストがない場合はすべてのモジュールをビルドするか、1つまたはモードモジュールで1つ以上の失敗したテストがある場合は、すべてのモジュールのビルドをスキップします。手伝ってくれませんか。

4

3 に答える 3

1

Mavenでは不可能です。Mavenで許可されていないMavenビルドライフサイクルを変更しようとしています。ただし、Mavenに渡すことができる構成パラメーターがいくつかあり、これはテストに影響します。

mvn install -Dmaven.test.skip

これはユニットテストをまったく実行しません

mvn install -Dmaven.test.failure.ignore=true 

これにより、テストフェーズ中に障害が発生した場合でも、Mavenは停止せず、モジュール構築プロセスを続行します。お役に立てれば

于 2011-09-23T13:40:36.047 に答える
1

走る:

mvn clean test
mvn install -Dmaven.test.skip=true

モジュール間の依存関係がある場合(私はそうしていると思います)、他のモジュールでテストを実行する前に依存するjarを構築する必要があるため、おそらく実際にはこれを行うことができないことに注意してください。

于 2011-09-23T13:40:37.683 に答える
0

問題は:

モジュールにはおそらく相互に依存関係があり、それらの依存関係を解決するには、モジュールを順番にビルドする必要があります。そうしないと、モジュールはコンパイルされません。したがって、問題に対する正しい解決策はありません。

非常識なソリューションは、すべての子プロジェクトからのソース(および外部依存関係)を何らかの形で集約し、そのコングロマリットで実行compileしますtestが、それは非常に巨大なハックであり、彼らがそれをしなかったことを嬉しく思います。

于 2011-09-23T13:40:48.657 に答える