gpt4 book ai didi

java - 排除特定测试在 jUnit 中并行运行

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:54:10 24 4
gpt4 key购买 nike

我最近偶然发现了一种通过 jUnit 并行执行测试的简单方法,方法是在 java 项目的 pom.xml 文件中指定以下内容:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<parallel>classes</parallel>
</configuration>
</plugin>

我发现有 2 个测试类(我们称它们为“badtestclass1”和“badtestclass2”)由于其中测试的编写方式而不断受到这种并行执行的惩罚。理想情况下,我会重构这些测试类以使其表现更好,但在此期间,我想知道是否有一种巧妙的方法可以“排除”这些特定类的并行执行。基本上,有没有办法并行执行其他所有内容,然后依次执行这两个(或其他顺序,无关紧要)。像下面这样的东西会起作用吗?

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<parallel>classes</parallel>
<excludes>
<excludesFile>badtestclass1</excludesFile>
<excludesFile>badtestclass2</excludesFile>
</excludes>
</configuration>
</plugin>

最佳答案

您可以使用 jcip @NotThreadSafe 注释您不想并行化的类并保留 surefire 配置,因为它在您的起始示例中。这样,每当 surefire 找到一个带注释的类时,它只会在一个线程中执行它。解释的对here在“并行测试执行和单线程执行”段落中。

关于java - 排除特定测试在 jUnit 中并行运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24811430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com