我想并行运行我的集成测试,以便: *每个测试方法由不同的JVM *运行,每使用一个线程运行Maven集成测试
后阅读the surefire docs我想用的:
mvn test -DforkCount=2 -DreuseForks=false -Dparallel=methods -DthreadCount=1
,但我的测试中出现失败(当然,只运行mvn test
运行它们按顺序不会失败)
任何我DEA如何实现多进程单线程?
我想并行运行我的集成测试,以便: *每个测试方法由不同的JVM *运行,每使用一个线程运行Maven集成测试
后阅读the surefire docs我想用的:
mvn test -DforkCount=2 -DreuseForks=false -Dparallel=methods -DthreadCount=1
,但我的测试中出现失败(当然,只运行mvn test
运行它们按顺序不会失败)
任何我DEA如何实现多进程单线程?
Surefire插件在forkCount
单独JVM进程执行不同的类,使用每个JVM threadCount
线程和如果parallel=methods
然后每个方法将给出一个线程。换句话说,每个分叉被赋予一个类,每个方法被赋予一个线程。您不能在方法和分叉之间映射。
从Surefire's page, paragraph on combining forkCount and parallel:
然而,可以使用并行=方法:类在forkCount并发进程执行,则每个处理可以使用THREADCOUNT线程并行地执行一个类的方法。
TestNG的在案件以下标注它可以帮助:
@Test(threadPoolSize = 3, invocationCount = 6, timeOut = 1000)
编辑:刚刚看了评论:
你必须让你的单元测试纠正,然后再加速执行向上。
Offtop:你为什么需要这个? – coolguy
我有一些遗留代码需要改进其性能。而其中一些代码不是线程安全的,我的城市只有50%的加载。 – Amnon
首先,我会建议理解为什么他们失败的原因,如果这些测试是单元测试,他们应该工作......也许你正在做不干净的单元测试更多的集成测试... – khmarbaise