一. 控制Case 执行顺序
控制Case的执行顺序有两种,一种直接在@Test后面跟上priority参数,例如下创建一个类,编写3个测试:
public class TestDemo {
@Test(priority = 3)
public void test01() {
System.out.println("test01");
}
@Test(priority = 2)
public void test02() {
System.out.println("test02");
}
@Test(priority = 1)
public void test03() {
System.out.println("test03");
}
}
执行结果:
可以看到最后执行顺序是3,2,1
第二种控制Case执行顺序的可以通过xml文件,在 <methods>
标签里面设置,例如,
注意:preserve-order=”true” 必须设置为true
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="test">
<test verbose="1" name="test" annotations="JDK" preserve-order="true">
<classes>
<class name="cn.demo.TestDemo"/>
<methods>
<include name="test03"></include>
<include name="test02"></include>
<include name="test01"></include>
</methods>
<class name="cn.demo.AestDemo"/>
</classes>
</test>
</suite>
XML文件不仅仅可以控制case的执行顺序,也可以控制执行类的顺序,上面的AestDemo在TestDemo类后执行。
二. Case间的依赖关系
假设上面离职 test01运行之前必须先运行test02,有不考虑通过设计执行顺序来控制,那么可以考虑设置依赖。 设置依赖在@Test后面跟上dependsOnMethods参数,具体代码如下(注意需去掉刚xml控制的执行顺序):
public class TestDemo {
@Test(dependsOnMethods = "test02")
public void test01() {
System.out.println("test01");
}
@Test
public void test02() {
System.out.println("test02");
}
@Test
public void test03() {
System.out.println("test03");
}
执行结果:
未完待续。。。