zoukankan      html  css  js  c++  java
  • TestNG之执行测试类方式

    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

  • 相关阅读:
    iOS面试题
    iOS-block
    iOS开发设计模式
    iOS-宏定义
    正则表达式(转)
    iOS-textfield控制光标开始位置
    initWithNibName&initWithCoder &awakeFromNib&UIView常见属性方法
    iOS应用生命周期
    iOS-app发布新版本步骤
    iOS从App跳转至系统设置菜单各功能项
  • 原文地址:https://www.cnblogs.com/qiaoyeye/p/5039881.html
Copyright © 2011-2022 走看看