zoukankan      html  css  js  c++  java
  • TestNG关键字和testNG.xml结构学习

    转自官网:http://testng.org/doc/documentation-main.html#test-results

    TestNG关键字

    @BeforeSuite
    @AfterSuite
    @BeforeTest
    @AfterTest
    @BeforeGroups
    @AfterGroups
    @BeforeClass
    @AfterClass
    @BeforeMethod
    @AfterMethod

    @BeforeSuite: The annotated method will be run before all tests in this suite have run. 
    @AfterSuite: The annotated method will be run after all tests in this suite have run. 
    @BeforeTest: The annotated method will be run before any test method belonging

    to the classes inside the <test> tag is run. 
    @AfterTest: The annotated method will be run after all the test methods belonging 

    to the classes inside the <test> tag have run. 
    @BeforeGroups: The list of groups that this configuration method will run before. 

    This method is guaranteed to run shortly before the first test method that belongs 

    to any of these groups is invoked.
    @AfterGroups: The list of groups that this configuration method will run after. 

    This method is guaranteed to run shortly after the last test method that belongs

     to any of these groups is invoked. 
    @BeforeClass: The annotated method will be run before the first test method in 

    the current class is invoked. 
    @AfterClass: The annotated method will be run after all the test methods in the 

    current class have been run. 
    @BeforeMethod: The annotated method will be run before each test method. 
    @AfterMethod: The annotated method will be run after each test method.

    testNG.xml结构

    The concepts used in this documentation are as follows:

    • A suite is represented by one XML file. It can contain one or more tests and is defined by the <suite> tag.
    • A test is represented by <test> and can contain one or more TestNG classes.
    • A TestNG class is a Java class that contains at least one TestNG annotation. It is represented by the <class> tag and can contain one or more test methods.
    • A test method is a Java method annotated by @Test in your source.

    Here is an example testng.xml file:

    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
     
    <suite name="Suite1" verbose="1" >
      <test name="Nopackage" >
        <classes>
           <class name="NoPackageTest" />
        </classes>
      </test>
    
      <test name="Regression1">
        <classes>
          <class name="test.sample.ParameterSample"/>
          <class name="test.sample.ParameterTest"/>
        </classes>
      </test>
    </suite>
     

    You can specify package names instead of class names:

    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    
    <suite name="Suite1" verbose="1" >
      <test name="Regression1"   >
        <packages>
          <package name="test.sample" />
       </packages>
     </test>
    </suite>
     

    In this example, TestNG will look at all the classes in the package test.sample and will retain only classes that have TestNG annotations.

    You can also specify groups and methods to be included and excluded:

    public class Test1 {
      @Test(groups = { "functest", "checkintest" })
      public void testMethod1() {
      }
    
      @Test(groups = {"functest", "checkintest"} )
      public void testMethod2() {
      }
    
      @Test(groups = { "functest" })
      public void testMethod3() {
      }
    }


    <test name="Regression1">
      <groups>
        <run>
          <exclude name="brokenTests"  />
          <include name="checkinTests"  />
        </run>
      </groups>
     
      <classes>
        <class name="test.IndividualMethodsTest">
          <methods>
            <include name="testMethod" />
          </methods>
        </class>
      </classes>
    </test>
     

    You can also define new groups inside testng.xml and specify additional details in attributes, such as whether to run the tests in parallel, how many threads to use, whether you are running JUnit tests, etc... 

    
    

    By default, TestNG will run your tests in the order they are found in the XML file. If you want the classes and methods listed in this file to be run in an unpredictible order, set the preserve-order attribute to false

    <test name="Regression1" preserve-order="false">
      <classes>
    
        <class name="test.Test1">
          <methods>
            <include name="m1" />
            <include name="m2" />
          </methods>
        </class>
    
        <class name="test.Test2" />
    
      </classes>
    </test>
     

    Please see the DTD for a complete list of the features, or read on.

  • 相关阅读:
    Prism 源码解读5-数据绑定和命令
    Prism 源码解读4-ViewModel注入
    Prism 源码解读3-Modules加载
    Prism 源码解读2-View的加载和控制
    java中int 类型的移位运算与位运算
    二进制、十六进制理解及int类型二进制存储方式
    git bash返回上一级目录
    关于我
    【设计模式】设计原则--面向接口编程你理解的对吗?
    回到未来:Smalltalk 编程系统
  • 原文地址:https://www.cnblogs.com/digod/p/5832264.html
Copyright © 2011-2022 走看看