次のようなプロジェクト構造があります。
Parent Project
- A
- B
- C
- D (Parent to D.1-3)
- D.1
- D.2
- D.3
-E
ABCE はコード プロジェクト (OSGi バンドル) で、単体テストも含まれています。D.1、D.2、D.3 は、jUnit ランナーを使用して開始する pax-exam を使用した統合テストです。
ABCE単体テストは並行して実行できます。D.1-3 は並行して実行できません。これは簡単です。親 pom ですべてを並行して実行するように Surefire に指示するだけで、D の pom ではすべてを一度に 1 つずつ実行するように確実に指示します。D.1-3 は親 pom として D を持っています。
さて、これで並列テストが実行されました。また、並列ビルドも本当に必要です。
Maven で -T 5 フラグを使用すると、複数のモジュールを並行して実行することになります。Surefire に関して言えば、これはそれぞれ独自のテストを並行して実行する Surefire の 5 つのインスタンスがあることを意味します。これでもいいです。
問題は、maven が D.1、D.2、D.3 を並行して実行することを決定する可能性があり、その後、私が何を確実に伝えても、それらのテストケースが並行して実行されることです。
D.pom 内の maven の -T フラグをオーバーライドする方法はありますか?
または、ビルドの一部を強制的にシリアル化する他の方法はありますか? D.1-3 をこのプロジェクトから移動し、常に -T 1 で実行される別のプロジェクトに移動する以外は。