您的位置:首页 > 其它

【转】TestNG执行顺序控制

2019-08-03 07:53 309 查看
原文链接:https://www.geek-share.com/detail/2725426042.html

1.class执行顺序控制---testng.xml之preserve-order

preserve-order:用来控制<test>里面所有<classes>的执行顺序。<test>中默认的preserve-order为true,表示<test>下所有<classes>按照顺序执行,如:

 

<span style="font-size:12px;">1. <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="suite1">
  <test name="test" preserve-order="true">
  <classes >
    <class name="com.pack.ClassTwo">
    <span style="white-space:pre;">  </span><class name="com.pack.ClassThree">
    <span style="white-space:pre;">  </span><class name="com.pack.ClassOne">
  </classes >
  </test>
</suite></span>

 

执行顺序:按照ClassTwo,ClassThree,ClassOne执行

【注】 一个<class>类里面可能存在多个测试方法(被@Test注解的方法),这些方法的执行顺序不受preserve-order控制。默认测试方法的执行顺序是按照方法名的首字母升序排序执行的。

 

2.@test执行顺序控制

(1) 使用priority指定执行顺序(默认值为0),数值越小,越靠前执行,如:

 

<span style="font-size:12px;">@Test(priority = 0)
public void testMethod1() {
}
@Test(priority = 1)
public void testMethod2() {
}
@Test(priority = 2)
public void testMethod3() {
}</span>

 

执行顺序:按照testMethod1、testMethod2、testMethod3顺序执行

 

(2) 方法名称按首字母排序

因为默认执行顺序是按照方法名的首字母升序排序执行。那么,有目的地去定制方法名称,就可以让方法按照我们要求的顺序执行。如:

 

<span style="font-size:12px;">
@Test public void B() {
}
@Test public void A() {
}
@Test public void C() {
}</span>

 

执行顺序:按照A、B、C顺序执行。

 

(3) 在xml里面使用<include>指定需要执行的方法和顺序,如:

 

<span style="font-size:12px;"> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"><suite name="Preserve order test runs">
<test name="test" preserve-order="true">
<classes>
<class name="com.pack.ClassOne">
<methods>
<include name="B" />
<include name="A" />
</methods>
</class>
</classes>
</test></suite></span>

 

执行顺序:ClassOne执行两个测试方法,先执行B,然后执行A。

转载于:https://www.cnblogs.com/liuyitan/p/8134084.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: