一. 控制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");
}
執行結果:
未完待續。。。