无论我使用什么设置用于Maven + Surefire,我都看不到在我的流程管理器中产生的多个JVM。我有一台带有8个物理内核的Windows 7 PC。我正在运行最新的Maven / Surefire / JUnit和JDK8(32位)。
我尝试将每个测试分解为每个测试类一个测试。 (我读到JVM只是为测试类生成的,而不是测试方法。)但是,我从未在流程管理器中看到多个JVM。
理想情况下,我希望每个测试类并行运行一个单独的JVM-8(每个核心一个/不重用JVM)。
Maven Surefire设置需要什么?
以下内容对我不起作用:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<includes>
<include>${default.test.suite}</include>
</includes>
<reuseForks>false</reuseForks>
<forkCount>1.0C</forkCount>
<parallel>classes</parallel>
<threadCount>1</threadCount>
<!--
<useUnlimitedThreads>true</useUnlimitedThreads>
<parallelOptimized>false</parallelOptimized>
-->
</configuration>
</plugin>
(我尝试了reuseForks
,forkCount
,parallel
,threadCount
,useUnlimitedThreads
和parallelOptimized
的各种组合。)
答案 0 :(得分:1)
如果您正在使用JUnit,首先是&#34; parallel&#34;仅适用于TestNG,以及其他一些属性,因此他们不会对您有所帮助/兴趣:
以下是在JUnit设置中对我们有用的东西(对于刚刚发布的TestNG不起作用:Running test in parallel with surefire and displaying them properly with the TestNG Jenkins plugin):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<reuseForks>false</reuseForks>
<forkCount>2.5C</forkCount>
</configuration>
</plugin>
所以我认为你需要增加你的forkCount(forkCount = 1.0你会赢得并行的东西)。
作为参考,这里有关于并行运行测试的小字体(包括forkCount解释和示例):