一般场景为:同一个测试类里面的测试方法,会按照命名执行测试用例
以下代码,尽管我修改了代码顺序,但依然会按照test01、02、03、04的顺序执行
package org.example;
//import static org.junit.Assert.assertTrue;
import org.testng.Assert;
import org.testng.annotations.*;
public class AppTest
{
@BeforeClass
public void setUp() {
System.out.println("开始了");
}
@Test
public void test04(){
System.out.println("我是test04");
}
@Test
public void test01(){
System.out.println("我是test01");
}
@Test
public void test02() {
System.out.println("我是test02");
}
@Test
public void test03() {
System.out.println("我是test03");
}
@AfterClass
public void tearDown() {
System.out.println("结束了");
}
}
如果遇到enable=false,则跳过该测试用例,如果遇到alwaysRun = true,则无论如何会一直执行。其他可以改变用例执行顺序的方式如下
1、使用注解
dependsOnMethods、dependsOnGroups,包括上面说的enable,alwaysRun
2、xml
在testng.xml中使用和depends-on来指定用例顺序:
<test name="My suite">
<groups>
<dependencies>
<group name="c" depends-on="a b" />
<group name="z" depends-on="c" />
</dependencies>
</groups>
</test>
这种情况正常顺序 a,b,c,z
一般来说,被依赖的方法优先于依赖者执行