IT源码网

TestNG之执行测试类方式

sanshao 2021年05月17日 程序员 428 0

TestNG提供了很多执行方式,下面做简单介绍。

1.XML指明测试类,按照类名执行,其中可以指定包名,也可指定无包名:

带包名,运行ParameterSample类和ParameterTest类

<?xml version="1.0" encoding="UTF-8"?> 
<suite name="Suite1" verbose="1" > 
  <test name="Regression1"> 
    <classes> 
      <class name="test.sample.ParameterSample"/> 
      <class name="test.sample.ParameterTest"/> 
    </classes> 
  </test> 
</suite>

不带包名,不建议使用

<?xml version="1.0" encoding="UTF-8"?> 
<suite name="Suite1" verbose="1" > 
  <test name="Nopackage" > 
    <classes> 
       <class name="NoPackageTest" /> 
    </classes> 
  </test> 
</suite>

2.XML指定包名,执行包内的所有测试类

<?xml version="1.0" encoding="UTF-8"?> 
<suite name="Suite1" verbose="1" > 
  <test name="Regression1"   > 
    <packages> 
      <package name="test.sample" /> 
   </packages> 
 </test> 
</suite>

3.XML中指定某个类的某些方法

<test name="Test1"> 
  <classes> 
    <class name="example1.Test1"> 
      <methods> 
        <include name=".*enabledTestMethod.*"/> 
        <exclude name=".*brokenTestMethod.*"/> 
      </methods> 
     </class> 
  </classes> 
</test>

4.XML指定组,需要在代码里面设定组

代码:

    @Test(groups={"g2"}) 
    public void test4() { 
        System.out.println("this is test4"); 
    } 
    @Test(groups={"g1"}) 
    public void test5() { 
        System.out.println("this is test5"); 
    } 
    @Test(groups={"g1"}) 
    public void test10() { 
        System.out.println("this is test10"); 
    }

XML:

<?xml version="1.0" encoding="UTF-8"?> 
<suite name="Suite">  
 <test name="Test"> 
 <groups> 
  <run> 
   <exclude name="g2"  /> 
   <include name="g1"  /> 
  </run> 
  </groups> 
  <classes> 
  <class name="test.testng.TestOrder"/> 
  </classes> 
  </test> <!-- Test --> 
</suite> <!-- Suite -->

5.排除某个不执行的测试方法,下面的示例中testMethod2包含broken,在xml中排除了包含broken的方法,所以testMehodd2则不会执行。

@Test(groups = {"checkintest", "broken"} ) 
public void testMethod2() { 
}
<test name="Simple example"> 
  <groups> 
    <run> 
      <include name="checkintest"/> 
      <exclude name="broken"/> 
    </run> 
  </groups> 
   
  <classes> 
    <class name="example1.Test1"/> 
  </classes> 
</test>

也可以使用@Test(enabled=false)来设定。

6.XML指定组中组

代码:

    @Test(groups={"g2"}) 
    public void test4() { 
        System.out.println("this is test4"); 
    } 
    @Test(groups={"g1"}) 
    public void test5() { 
        System.out.println("this is test5"); 
    } 
    @Test(groups={"g1","g3"}) 
    public void test10() { 
        System.out.println("this is test10"); 
    }

XML:定义一个name=fun的组,包含g3方法,再定义一个name=all的组,包含以g开头的所有方法

<?xml version="1.0" encoding="UTF-8"?> 
<suite name="Suite" parallel="true">  
<test name="Test"> 
  <groups> 
  <define name="fun"> 
      <include name="g3"/> 
    </define> 
   <define name="all"> 
       <include name="g.*" /> 
   </define> 
  <run> 
       <include name="all" /> 
  </run> 
  </groups> 
  <classes> 
  <class name="test.testng.TestOrder"/> 
  </classes> 
  </test> <!-- Test --> 
</suite> <!-- Suite -->

print:

this is test10
this is test5
this is test4


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

TestNG之执行顺序