Notice: 函数 WP_Scripts::localize 的调用方法不正确$l10n 参数必须是一个数组。若要将任意数据传递给脚本,请改用 wp_add_inline_script() 函数。 请查阅调试 WordPress来获取更多信息。 (这个消息是在 5.7.0 版本添加的。) in /data/www/appblog/wp-includes/functions.php on line 6131

TestNG执行流程

TestNG基本注解

TestNG支持的注解:

注解 描述
@BeforeSuite 注解的方法将只运行一次,所有测试运行前运行
@AfterSuite 注解的方法将只运行一次,所有测试运行后运行
@BeforeClass 注解的方法将只运行一次,被注释的方法将在当前类的第一个测试方法调用前运行
@AfterClass 注解的方法将只运行一次,被注释的方法将在当前类的最后一个测试方法调用后运行
@BeforeTest 注解的方法将在所有测试方法运行前运行
@AfterTest 注解的方法将在所有测试方法运行后运行
@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.
@BeforeMethod 注解的方法将在每个测试方法之前运行
@AfterMethod 注解的方法将在每个测试方法之后运行
@DataProvider Marks a method as supplying data for a test method.
The annotated method must return an Object[][] where
each Object[] can be assigned the parameter list of the test method.
The @Test method that wants to receive data from this DataProvider
needs to use a dataProvider name equals to the name of this annotation.
@Factory Marks a method as a factory that returns objects that will be used by TestNG
as Test classes. The method must return Object[].
@Listeners Defines listeners on a test class.
@Parameters Describes how to pass parameters to a @Test method.
@Test Marks a class or a method as part of the test.

TestNG执行流程

TestNG是执行过程为:

  • @BeforeSuite
  • @BeforeTest
  • @BeforeClass
  • { @BeforeMethod -> @Test -> @AfterMethod }
  • @AfterClass
  • @AfterTest
  • @AfterSuite

TestNGAnnotationTest.java

package me.yezhou;

import org.testng.annotations.*;

public class TestNGAnnotationTest {
    // 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_annotation.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite">
    <test name="test">
        <classes>
            <class name="me.yezhou.TestNGAnnotationTest"/>
        </classes>
    </test>
</suite>

执行结果:

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
===============================================
上一篇 TestNG编写测试
下一篇 TestNG套件测试