Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以指定的顺序运行Maven项目的JUnit测试_Java_Maven_Junit_Maven Surefire Plugin - Fatal编程技术网

Java 以指定的顺序运行Maven项目的JUnit测试

Java 以指定的顺序运行Maven项目的JUnit测试,java,maven,junit,maven-surefire-plugin,Java,Maven,Junit,Maven Surefire Plugin,我正在做一个项目,根据Junit测试对任何Maven项目的语句覆盖率,对Junit测试进行优先级排序(我从Git中随机挑选项目)。到目前为止,我能够得到一个优先测试的列表 我不知道如何让Maven项目按照我提出的顺序运行测试 我做了一些搜索,发现Maven surefire插件支持使用runOrder标记进行排序。但是顺序是固定的-字母顺序/反向等等。我还遇到了TestNG,它支持XML文件上指定的顺序 我无法修改目标项目中的源代码(因为源代码不是我写的)。我只能在需要时添加新的配置文件或编辑P

我正在做一个项目,根据Junit测试对任何Maven项目的语句覆盖率,对Junit测试进行优先级排序(我从Git中随机挑选项目)。到目前为止,我能够得到一个优先测试的列表

我不知道如何让Maven项目按照我提出的顺序运行测试

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

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

我怎样才能做到这一点?如果您能为我提供任何有用的资源,我将不胜感激


TIA

您可以为此创建并使用JUnitTestSite

@RunWith(Suite.class)
@SuiteClasses({Test1.class,
               Test2.class
})
public class YourTestSuite {
}
测试套件按照@SuiteClasses注释中提到的顺序运行测试用例

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


maven surefire插件
2.6
**/*Test.java
**/*TestSuite.java
${project.build.sourceDirectory}
${project.build.testSourceDirectory}
错误的
总是

为什么需要按特定顺序运行测试?我想看看按语句覆盖率顺序运行测试时的性能(例如,识别错误的速率)。谢谢。我将尝试@SuiteClasses选项。你能告诉我为什么我们需要这个选项吗?这只会订购课程。有没有办法对测试用例(带有测试注释的方法)进行排序?我想没有办法对每个测试进行排序。但是你的回答确实帮助我安排了考试课程。谢谢。没有选择套件中指定的测试类的顺序?我错过什么了吗?