[英]Running JUnit5 Test in Parallel But Want To Leave Some Tests Sequential
我有一个项目,我们有很多 Junit 测试。 我们刚刚进行了从 JUnit4 到 JUnit5 的大规模迁移。 我们希望并行运行大部分测试,但有几个需要按顺序运行。 有没有办法使用 JUnit5 并以两种方式运行测试?
我问的原因是我有 4 个测试将数据库加载到内存中,并且我正在将数据加载到这个数据库中。 然后我在那个数据库上运行测试。 这些是我需要按顺序运行且不能并行运行的四个测试。
您很可能希望在测试中使用@ResourceLock
注释https://junit.org/junit5/docs/snapshot/user-guide/#writing-tests-parallel-execution-synchronization
您可以查看@Isolated
注释https://junit.org/junit5/docs/5.7.1/api/org.junit.jupiter.api/org/junit/jupiter/api/parallel/Isolated.html 。
它保证 test-class 不会与其他类并行运行。
根据并行测试执行和单线程执行:
从 maven-surefire-plugin:2.18 开始,您可以在 JUnit 测试的 Java 类(纯测试类、Suite、Parameterized 等)上应用 JCIP 注解 @net.jcip.annotations.NotThreadSafe 以便单次执行线程实例。 线程的名称为 maven-surefire-plugin@NotThreadSafe 并在测试运行结束时执行。
因此,您可以使用@NotThreadSafe
注释您的测试类,以便让它们在 1 个相同的线程(名为maven-surefire-plugin@NotThreadSafe )上执行。
<dependency>
<groupId>com.github.stephenc.jcip</groupId>
<artifactId>jcip-annotations</artifactId>
<version>1.0-1</version>
<scope>test</scope>
</dependency>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.