[英]How do I control the order of execution of tests in Maven?
我需要按顺序运行测试。 我没有在任何地方找到充分记录的这一点。 我更愿意从命令行执行此操作。 就像是
mvn -Dtest=test1,test2,test3,test5 test
我该怎么做呢?
您无法指定测试的运行顺序。
一种解决方法是将runOrder 参数设置为按字母顺序排列。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<runOrder>alphabetical</runOrder>
</configuration>
</plugin>
然后您需要重命名您的测试以获得预期的顺序。
但是,进行相关测试并不是一个好主意。 单元测试必须是first 。
如果您确实需要一个测试顺序,那么您应该使用testng而不是 JUnit,您可以在其中定义测试之间的依赖关系并基于特定的测试顺序。 我知道在实践中他们是独立范式不起作用的时候。
您可以创建一个测试套件来运行所有测试并运行它。
使用junit 4: -
@RunWith(Suite.class)
@Suite.SuiteClasses({Test1.class,
Test2.class,
Test3.class,
Test4.class,
Test5.class
})
public class TestSuite
{
}
这将以正确的顺序运行它们。
如果您的单元测试需要按特定顺序运行,这可能是因为您的测试设计不当,或者您的应用程序设计不当。 您的单元测试应该彼此独立。
runOrder
-plugin 的runOrder
参数会有所帮助,但只有在类按顺序执行时才会有所帮助。 在一个类(surefire-plugin 2.22.2,junit 5.6.1)中对测试方法进行排序并没有帮助。 要使用 jUnit 实现测试类内的顺序,请使用 jUnit 的特性,即通过@TestMethodOrder(MethodOrderer.Alphanumeric.class) (jUnit 5) 控制类内的测试顺序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.