我有4个测试用例,我希望第一个测试用例从demo1.java运行,然后从demo2.java运行另外2个测试用例,然后返回demo1.java执行最后一个测试用例。
我有什么办法可以做到这一点吗?谢谢你的帮助。
我试过了 priority
参数,但我猜这只是检查同一测试类中的优先级
下面是一个示例代码-
演示1.java
class Demo1{
@Test
public void testOne(){ //This case should be executed first
}
@Test
public void testFour(){ //This case should be executed last
}
}
演示2.java
class Demo2{
@Test
public void testTwo(){ // This case should be executed 2nd in the order
}
@Test
public void testThree(){ // This case should be executed 3rd in the order
}
}
3条答案
按热度按时间8wigbo561#
@dependsongroups和@dependsonmethods注解的组合提供了testng中跨类和方法的测试排序的最可伸缩的方式。
@dependsongroups将帮助实现跨类的排序
@dependsonmethods将帮助实现类内的排序
以下是使用@dependsonroups和@dependsonmethods的工作示例:
脚本:
有两个测试类-atest.java,btest.java
atest有两种测试方法-a1、a2
btest有两种测试方法-b1,b2
执行顺序必须为:a1、b1、b2、a2
测试.java
测试.java
注意:上述排序只能通过使用@dependsonmethods注解来实现。
但是,不建议跨类使用@dependsonmethods,因为这将强制要求整个套件中的每个测试用例方法都有唯一的名称。
@dependsongroups的使用将允许测试命名的灵活性,并使跨类实现排序变得容易,而不会带来麻烦。
更多信息:
https://testng.org/doc/documentation-main.html
eivgtgni2#
您可以通过以下方法实现。
类test1扩展了类test2:
}
类测试2:
vaqhlq813#
是的,您可以通过帮助订购junit测试用例
有关详细信息,请单击此链接,以获取更多详细信息