2

多くの統合テストを含むプロジェクトがあり、テストの実行時間を短縮しようとしています。テストはすべて、DB 接続を使用する JUnit テストです。現在、すべてのテストは、キャッシュの問題を処理するために、テストごとに fork を使用して maven-surefire-plugin を使用して 1 つずつ実行されます (ここでのキャッシュは問題ではありません)。

すべてのテストは、同じ DB スキーマに永続化されるアプリを使用します。プロセスを並列化しようとすると、これは課題に直面します。

確実なhttp://incodewetrustinc.blogspot.com/2010/01/run-your-junit-tests-concurrently-with.htmlの並行性について少し説明している素敵なブログを見つけました が、このソリューションの実装にはまだ問題があります共有リソースがあります。

私の考えは、複数のスキーマを作成し、それらをスレッド\プロセス間で共有することでした。各テストに個別の接続を割り当て、衝突を回避するにはどうすればよいですか?

いくつかのアイデアを聞きたいです。

ありがとうイカ。

4

1 に答える 1

0

${surefire.forkNumber}DB 接続 ID の一部として使用します。次に、テストを実行する各スレッドは個別の接続を使用します。

于 2015-04-15T14:56:34.617 に答える