繁体   English   中英

并行运行 JUnit5 测试,但想让一些测试保持顺序

[英]Running JUnit5 Test in Parallel But Want To Leave Some Tests Sequential

我有一个项目,我们有很多 Junit 测试。 我们刚刚进行了从 JUnit4 到 JUnit5 的大规模迁移。 我们希望并行运行大部分测试,但有几个需要按顺序运行。 有没有办法使用 JUnit5 并以两种方式运行测试?

我问的原因是我有 4 个测试将数据库加载到内存中,并且我正在将数据加载到这个数据库中。 然后我在那个数据库上运行测试。 这些是我需要按顺序运行且不能并行运行的四个测试。

您可以查看@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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM