1.preserve-order属性,之前一直认为preserve-order属性是控制配置方法的执行顺序的,其实不是,preserve-order主要是控制test下节点classes执行顺序的
例如:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="framework_testng"> <test name="test" preserve-order="true"> <classes> <class name="com.demo.One"></class> <class name="com.demo.Two"></class> <class name="com.demo.Three"></class> </classes> </test> </suite>
以上将按照 类One Two Three的顺序执行
2.那么要控制方法的执行顺序,可以采取以下方式:
(1).使用priority控制,例如:
@Test(priority = 0)
public void test001() {
}
@Test(priority = 1)
public void test002() {
}
@Test(priority = 2)
public void test003() {
}
这样指定以后,将按照test001、test002、test003顺序执行。
(2).使用方法命名控制
执行顺序是按照方法名的字典序升序排序执行的,例如方法名命名为:A() B() C()
这样就会按照A B C的顺序进行执行
(3).通过include控制,例如:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="framework_testng"> <test name="test" preserve-order="true"> <classes> <class name="com.demo.Yltest"> <methods > <include name="z" /> <include name="c" /> <include name="d" /> <include name="e" /> <include name="f" /> <include name="g" /> <include name="h" /> </methods> </class> </classes> </test> </suite>
这样将按照 z c d e f g h的顺序执行