2

組み込みInfinispanデータグリッドクラスターに基づくアプリケーションを開発しています。アプリケーションのターゲット環境では、データグリッドの各メンバーが独立したJVMで実行されjgroup、クラスターの使用が形成されます(これは実際にはInfinispanによって行われます)。

maven-surefire-pluginこの構成で作業していた(またはmaven-failsafe-plugin)このデータグリッドに対して自動テストを実行するには、次のようにします。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
      <forkMode>perthread</forkMode>
      <threadCount>4</threadCount>
    </configuration>
</plugin>

この構成では、テストケースクラスごとにフォークを作成する必要があるため(4つの並列プロセスを使用)、4つのテストクラスを作成します。各テストクラスは、1つのクラスターメンバーをシミュレートします。各テストケースクラス内では、次のようなTestNGのおかげで、テストメソッドを並行して実行する複数のスレッドがあります。

@Test(threadPoolSize = 3, invocationCount = 2,  timeOut = 10000, testName="Test 1")
public void testSomething() throws Throwable { ... }

問題は、maven-surefire-plugin forkMode="perthread"threadCount=4にバグがあることです。クラスごとに1つのフォークを作成するのではなく、同じクラスのフォークを数回作成します。したがって、私のシナリオでは、テストケースの1つを取り、それを4回並行して実行します!!!

注:ここでjiraのバグを確認してください。投票してください!!!!

誰かがこれの回避策を知っていますか?私たちはを使っていくつかの努力をしてantいますが、非常に厄介になっています。

4

1 に答える 1

3

maven-surefire-pluginバグは解決され、バージョン 2.13 でリリースされます!

詳細については、Jira チケットを確認してください: http://jira.codehaus.org/browse/SUREFIRE-869

于 2012-06-20T07:39:26.280 に答える