gpt4 book ai didi

java - 按指定顺序运行 Maven 项目的 JUnit 测试

转载 作者:行者123 更新时间:2023-12-02 13:24:07 24 4
gpt4 key购买 nike

我正在开发一个项目,根据任何 Maven 项目的语句覆盖率来确定 Junit 测试的优先级(我从 Git 中随机选择项目)。到目前为止,我可以获得优先测试的列表。

我不确定如何让 Maven 项目按照我想出的顺序运行测试。

我做了一些搜索,发现 Maven Surefire 插件支持使用 runOrder 标签的顺序。但顺序是固定的 - 字母/反向等。我还遇到过 TestNG,它支持在 XML 文件上指定的顺序。

我无法修改目标项目中的源代码(因为源代码不是我写的)。我只能根据需要添加新的配置文件或编辑 POM.xml。

我怎样才能实现这个目标?如果您能指导我任何有助于实现这一目标的资源,我将不胜感激。

TIA

最佳答案

您可以为此创建并使用 JUnitTestSuite。

@RunWith(Suite.class)
@SuiteClasses({Test1.class,
Test2.class
})
public class YourTestSuite {
}

测试套件按照 @SuiteClasses 注释中提到的顺序运行测试用例。

如果你想像maven测试目标一样通过maven目标按顺序运行测试用例,你可以使用这个测试套件。只需排除测试用例并通过下面给出的插件配置包含测试用例即可。

<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.6</version>
<configuration>
<excludes>
<exclude>**/*Test.java</exclude>
</excludes>
<includes>
<include>**/*TestSuite.java</include>
</includes>
<additionalClasspathElements>
<additionalClasspathElement>${project.build.sourceDirectory}</additionalClasspathElement>
<additionalClasspathElement>${project.build.testSourceDirectory}</additionalClasspathElement>
</additionalClasspathElements>
<useManifestOnlyJar>false</useManifestOnlyJar>
<forkMode>always</forkMode>
</configuration>
</plugin>

关于java - 按指定顺序运行 Maven 项目的 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43442967/

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