TestNG - 执行过程

  • 简述

    本章解释了 TestNG 中方法的执行过程。它解释了调用方法的顺序。下面是 TestNG 测试 API 方法的执行过程和示例。
    创建java类文件名 TestngAnnotation.java/work/testng/src 测试注释。
    
    import org.testng.annotations.Test;
    import org.testng.annotations.BeforeMethod;
    import org.testng.annotations.AfterMethod;
    import org.testng.annotations.BeforeClass;
    import org.testng.annotations.AfterClass;
    import org.testng.annotations.BeforeTest;
    import org.testng.annotations.AfterTest;
    import org.testng.annotations.BeforeSuite;
    import org.testng.annotations.AfterSuite;
    public class TestngAnnotation {
       // test case 1
       @Test
       public void testCase1() {
          System.out.println("in test case 1");
       }
       // test case 2
       @Test
       public void testCase2() {
          System.out.println("in test case 2");
       }
       @BeforeMethod
       public void beforeMethod() {
          System.out.println("in beforeMethod");
       }
       @AfterMethod
       public void afterMethod() {
          System.out.println("in afterMethod");
       }
       @BeforeClass
       public void beforeClass() {
          System.out.println("in beforeClass");
       }
       @AfterClass
       public void afterClass() {
          System.out.println("in afterClass");
       }
       @BeforeTest
       public void beforeTest() {
          System.out.println("in beforeTest");
       }
       @AfterTest
       public void afterTest() {
          System.out.println("in afterTest");
       }
       @BeforeSuite
       public void beforeSuite() {
          System.out.println("in beforeSuite");
       }
       @AfterSuite
       public void afterSuite() {
          System.out.println("in afterSuite");
       }
    }
    
    接下来,让我们创建文件 testng.xml/work/testng/src 执行注释。
    
    <?xml version = "1.0" encoding = "UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name = "Suite1">
       <test name = "test1">
          <classes>
             <class name = "TestngAnnotation"/>
          </classes>
       </test>
    </suite>
    
    使用 javac 编译测试用例类。
    
    /work/testng/src$ javac TestngAnnotation.java
    
    现在,运行 testng.xml,它将运行在提供的测试用例类中定义的测试用例。
    
    /work/testng/src$ java org.testng.TestNG testng.xml
    
    验证输出。
    
    in beforeSuite
    in beforeTest
    in beforeClass
    in beforeMethod
    in test case 1
    in afterMethod
    in beforeMethod
    in test case 2
    in afterMethod
    in afterClass
    in afterTest
    in afterSuite
    ===============================================
    Suite
    Total tests run: 2, Failures: 0, Skips: 0
    ===============================================
    
    基于上述输出,执行程序如下 -
    • 首先,beforeSuite() 方法只执行一次。
    • 最后,afterSuite() 方法只执行一次。
    • 甚至方法 beforeTest()、beforeClass()、afterClass() 和 afterTest() 方法也只执行一次。
    • beforeMethod() 方法为每个测试用例执行,但在执行测试用例之前。
    • afterMethod() 方法针对每个测试用例执行,但在执行测试用例之后执行。
    • 在beforeMethod() 和afterMethod() 之间,执行每个测试用例。