我有一个项目,我们进行了许多Junit测试。我们刚刚从JUnit4迁移到JUnit5。我们希望并行运行大多数测试,但是有一些需要顺序运行。有什么方法可以使用JUnit5并同时运行测试吗?
我问的原因是,我有4个测试将数据库加载到内存中,并且正在将数据加载到该数据库中。然后,我在该数据库上运行测试。这是我需要依次运行但不能并行运行的四个测试。
答案 0 :(得分:1)
您很可能希望在测试中使用@ResourceLock
批注
https://junit.org/junit5/docs/snapshot/user-guide/#writing-tests-parallel-execution-synchronization
答案 1 :(得分:0)
根据Parallel Test Execution and Single Thread Execution:
由于maven-surefire-plugin:2.18,您可以应用JCIP批注 JUnit测试的Java类上的@ 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>