TestNG 如何使用@After注解

TestNG 如何使用@After注解

一个TestNG类可以有多个@After方法,比如:@AfterTest @AfterSuite @AfterClass @AfterMethod等等。

本文将解释不同TestNG方法的执行顺序。

TestNG由以下@After方法组成,用于支持主要的@Test方法。@After方法的执行顺序应该如下:

<test1>
<AfterMethod>
<AfterClass>
<AfterTest>
<AfterSuite>

关键点在这个订单中是

  • 首先,在上面的示例中执行了第一个@test()方法。

  • AfterSuite()方法只执行一次。

  • 即使AfterClass()和AfterTest()方法也只会执行一次。

  • AfterMethod()方法对于每个测试用例执行(对于新的@Test每次执行一次),但是在执行测试用例之后执行。

步骤

  • 第1步:导入org.testng.annotations.*以使用TestNG。

  • 第2步:编写一个注释@test。

  • 第3步:为@test注释创建一个名为test1的方法。

  • 第4步:重复test2和test3的步骤。

  • 第5步:编写不同的注释和它们的相应方法。例如:@AfterClass,@AfterMethod,@AfterSuite

  • 第6步:现在根据以下方式创建testNG.xml。

  • 第7步:现在在IDE中运行testNG.xml或直接运行testNG类,也可以使用命令行编译和运行。

示例

以下代码展示了不同TestNG方法的顺序:

import org.testng.annotations.*;
import org.testng.annotations.Test;
public class OrderofTestExecutionInTestNG {
    // 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");
    }
    @AfterMethod
    public void afterMethod() {
        System.out.println("in afterMethod");
    }
    @AfterClass
    public void afterClass() {
        System.out.println("in afterClass");
    }
    @AfterTest
    public void afterTest() {
        System.out.println("in afterTest");
    }
    @AfterSuite
    public void afterSuite() {
        System.out.println("in afterSuite");
    }
}

testng.xml

这是一个配置文件,用于组织和执行TestNG测试用例。

当只需要执行有限的测试而不是整个套件时,它非常方便。

<?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 = "OrderofTestExecutionInTestNG"/>
      </classes>
   </test>
</suite>

输出

in test case 1
in afterMethod
in test case 2
in afterMethod
in afterClass
in afterTest
in afterSuite

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

TestNG 精选笔记