我无法使用Maven + Surefire组合一次执行两个以上的线程。我已经尝试了一些threadCount,perCoreThreadCount和useUnlimitedThreads设置的组合,但是永远不会比两个线程更好。参见附页截图:将有~12个Firefox窗口,但一次只有两个“驱动”。
我的机器有4个2.6 Ghz i7内核,所以它不像我应该达到硬件限制。
以下是Surefire配置之一的示例:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.2</version>
<configuration>
<includes>
<include>**/*Test*.*</include>
</includes>
<threadCount>10</threadCount>
<perCoreThreadCount>true</perCoreThreadCount>
<parallel>classes</parallel>
</configuration>
</plugin>
对于我的测试,我正在使用Scala包装在JUnit运行器中。每个测试都在自己的类中。我认为我的JUnit是4.10,Maven 3.04。
答案 0 :(得分:0)
尝试将MAVEN_OPTS = -Dmaven.artifact.threads = 10定义为Maven环境变量。
执行mvn时使用参数“-T”。
示例:
mvn -T 4 clean install #Build with 4 threads
mvn -T 1C每个cpu核心清理安装#1个线程
mvn -T 1.5C clean install#1.5 thread per cpu core
由于您使用的是Maven 3.x,因此可以指定线程数甚至核心数。
有关详细信息,请查看以下链接:https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3
希望它有所帮助!
答案 1 :(得分:0)
FWIW我有类似的问题。事实证明我试图从不同的JUnit类别运行测试类,但是与类并行设置。
每个类别中的类确实是并行执行的,但类别是按顺序执行的。
我最终将故障安全配置更新为
<configuration>
<parallel>suitesAndClasses</parallel>
<useUnlimitedThreads>true</useUnlimitedThreads>
<threadCountClasses>4</threadCountClasses>
</configuration>