我想并行运行我的集成测试,以便: *每个测试方法由不同的jvm运行 *并且每个都使用单个线程
阅读the surefire docs之后我想到了:
mvn test -DforkCount=2 -DreuseForks=false -Dparallel=methods -DthreadCount=1
但我的测试似乎失败了(当然,只运行mvn test
顺序运行它们不会失败)
知道如何实现多进程单线程吗?
答案 0 :(得分:0)
Surefire插件在forkCount
个单独的JVM进程中执行不同的类,每个JVM使用threadCount
个线程,如果parallel=methods
则每个方法都会被赋予一个线程。换句话说,每个 fork 都有一个类,每个方法都有一个线程。您无法在方法和分支之间进行映射。
来自Surefire's page, paragraph on combining forkCount and parallel:
但是,您可以使用parallel =方法:在forkCount并发进程中执行类,然后每个进程可以使用threadCount线程并行执行一个类的方法。
TestNG 有以下注释,以防它可以提供帮助:
@Test(threadPoolSize = 3, invocationCount = 6, timeOut = 1000)
编辑:刚看完评论:
你必须先让你的单元测试正确,然后加快执行速度。