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 个测试类,每个测试类都将模拟一个集群成员。在每个测试用例类中,我们将有多个线程并行运行测试方法,这要归功于 TestNG,如下所示:

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

问题是maven-surefire-plugin forkMode="perthread"andthreadCount=4是错误的:它不会为每个类创建一个 fork,而是多次创建同一类的 fork。所以,在我的场景中,它需要一个测试用例并并行运行 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 回答