36

サブプロジェクトと親プロジェクトにテストを含むマルチプロジェクト ビルドがあります。親プロジェクトが子プロジェクトのすべてのテストを実行するように、ビルドが集約されます。

サブプロジェクトと親プロジェクトの両方でテストが並行して実行されないように構成しました。

parallelExecution in Test := false

しかし、複数のプロジェクトにまたがるテストが並行して実行されていることに、しつこい気がします。サブプロジェクトの 1 つの場合、テスト データベースの状態が同時に変化し、テストが失敗するため、これは問題です。

プロジェクト間でテストの並列実行をグローバルに切り替える方法についてのアイデアはありますか?

4

7 に答える 7

36

ThisBuildスコープを使用して、プロジェクト全体に設定を適用できると思います。

parallelExecution in ThisBuild := false

それをスコープと組み合わせることができるかどうかはわかりTestませんが、必要ないかもしれません。

于 2012-08-10T11:13:16.090 に答える
20

すべてのプロジェクトで同時に実行されるテストの数を制限するには、次を使用します。

concurrentRestrictions in Global += Tags.limit(Tags.Test, 1)

sbt のドキュメントを参照してください

ディスカッションを見る

于 2015-10-31T21:27:33.730 に答える
4

ここで私の答えを参照してくださいテスト時にサブプロジェクトテスト(セットアップメソッドを含む)を順番に実行する方法

並列実行を防ぐ別の方法があります。異なるプロジェクトのテスト タスクを相互に依存させることができます。

test in Project2 := (test in Project2).dependsOn(test in Project1).value
parallelExecution in Test in Project2 := false
于 2014-12-29T14:33:28.323 に答える