我正在开发一个项目,根据他们对任何Maven项目的语句覆盖率来优先考虑Junit测试(我从Git中选择随机项目)。到目前为止,我能够获得优先测试的列表。
我不知道如何让Maven项目按照我提出的顺序运行测试。
我做了一些搜索,发现Maven surefire插件支持使用runOrder标记的订单。但顺序是固定的 - 按字母/反向等。我还遇到了TestNG,它支持在XML文件上指定的顺序。
我无法修改目标项目中的源代码(因为源代码不是由我编写的)。我只能在需要时添加新的配置文件或编辑POM.xml。
我怎样才能做到这一点?如果你能指导任何有用的资源,我真的很感激。
TIA
答案 0 :(得分:1)
您可以为此创建和使用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>
&#13;