是否可以执行与JUnit 5并行的测试用例?
我正在TestNG寻找threadPoolSize
和invocationCount
之类的内容:
@Test(threadPoolSize = 3, invocationCount = 10, timeOut = 10000)
答案 0 :(得分:2)
您可以使用JUnit 5.3编写并行测试。 https://junit.org/junit5/docs/current/user-guide/#writing-tests-parallel-execution
@Execution(ExecutionMode.CONCURRENT)
class MyTest {
@Test
void test1() throws InterruptedException {
Thread.sleep(1000);
System.out.println("Test1 " + Thread.currentThread().getName());
}
@Test
void test2() throws InterruptedException {
Thread.sleep(1000);
System.out.println("Test 2! " + Thread.currentThread().getName());
}
}
// should run simultaneously
请记住将junit.jupiter.execution.parallel.enabled=true
添加到您的JUnit配置中
https://junit.org/junit5/docs/current/user-guide/#running-tests-config-params
如果需要fixed thread pool
,请将其添加到JUnit配置中:
junit.jupiter.execution.parallel.config.strategy=fixed
junit.jupiter.execution.parallel.config.fixed.parallelism=4
答案 1 :(得分:1)
要进行后续操作-它现在可以作为JUnit 5.3的实验功能使用: https://junit.org/junit5/docs/snapshot/user-guide/index.html#writing-tests-parallel-execution
答案 2 :(得分:0)
在撰写本文时,并行测试执行是Junit5中的一项实验功能:
https://junit.org/junit5/docs/snapshot/user-guide/#writing-tests-parallel-execution
更新junit-platform.properties
文件:
用于并行执行顶级类的配置参数,但 同一线程中的方法:
junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = same_thread
junit.jupiter.execution.parallel.mode.classes.default = concurrent
用于依次执行顶级类的配置参数,但 他们的方法并行:
junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = concurrent
junit.jupiter.execution.parallel.mode.classes.default = same_thread
默认执行模式应用于测试树的所有节点 除了一些值得注意的例外,即使用 Lifecycle.PER_CLASS模式或MethodOrderer(随机除外)。在 在前一种情况下,测试作者必须确保测试课程为 线程安全的;在后者中,并发执行可能与 配置的执行顺序。因此,在两种情况下, 只有当 测试类上存在@Execution(CONCURRENT)批注或 方法。