TestNG - 基本注解 - BeforeTest

  • 简述

    @BeforeTest 注解方法将在任何属于 <test> 标签内的类的测试方法运行之前运行。
    以下是@BeforeTest 注解支持的属性列表:
    属性 描述
    alwaysRun
    对于 before 方法(beforeSuite、beforeTest、beforeTestClass 和 beforeTestMethod,但不是 beforeGroups):如果设置为 true,则无论它属于哪个组,都会运行此配置方法。
    对于 after 方法(afterSuite、afterClass、...):如果设置为 true,则即使之前调用的一个或多个方法失败或被跳过,此配置方法也将运行。
    dependsOnGroups
    此方法所依赖的组列表。
    dependsOnMethods
    此方法所依赖的方法列表。
    enabled
    是否启用此类/方法上的方法。
    groups
    这个类/方法所属的组列表。
    inheritGroups
    如果为 true,则此方法将属于在类级别的 @Test 批注中指定的组。
    onlyForGroups
    仅适用于@BeforeMethod 和@AfterMethod。如果指定,则仅当相应的测试方法属于列出的组之一时才会调用此设置/拆卸方法。
  • 创建一个类

    创建一个要测试的java类,比如说, MessageUtil.java/work/testng/src.
    
    /*
    * This class prints the given message on console.
    */
    public class MessageUtil {
       private String message;
       //Constructor
       //@param message to be printed
       public MessageUtil(String message) {
          this.message = message;
       }
       // prints the message
       public String printMessage() {
          System.out.println(message);
          return message;
       }
    }
    
  • 创建测试用例类

    • 创建一个 java 测试类,比如说, TestAnnotationBeforeTest.java/work/testng/src.
    • 将测试方法 testMethod() 添加到您的测试类。
    • 向方法 testMethod() 添加注解@Test。
    • 将方法 beforeTest 添加到带有注解 @BeforeTest 的测试类中
    • 实现测试条件并检查@BeforeTest 注解的行为。
    以下是TestAnnotationBeforeTest.java 的内容:
    
      import org.testng.Assert;
      import org.testng.annotations.Test;
      import org.testng.annotations.BeforeTest;
      public class TestAnnotationBeforeTest {
        MessageUtil messageUtil = new MessageUtil("Test method");
        @BeforeTest
        public void BeforeTest(){
          System.out.println("Before Test method");
        }
        @Test
        public void testMethod(){
          Assert.assertEquals("Test method", messageUtil.printMessage());
        }
      }
    
  • 创建 testng.xml

    接下来,让我们在其中创建 testng.xml 文件 /work/testng/src, 执行测试用例。此文件以 XML 格式捕获您的整个测试。该文件使您可以轻松地在一个文件中描述所有测试套件及其参数,您可以将其签入代码存储库或通过电子邮件发送给同事。它还可以轻松提取测试的子集或拆分多个运行时配置(例如,testngdatabase.xml 将仅运行测试您的数据库的测试)。
    
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
      <suite name="Suite">
        <test thread-count="5" name="Test">
          <classes>
            <class name="TestAnnotationBeforeTest"/>
          </classes>
        </test> <!-- Test -->
      </suite> <!-- Suite -->
    
    使用 javac 编译测试用例。
    
    /work/testng/src$ javac TestAnnotationBeforeTest.java MessageUtil.java
    
    现在,运行 testng.xml,它将运行 <test> 标记中定义的测试用例。如您所见,@BeforeTest 在所有其他测试用例之前被调用。
    
    /work/testng/src$ java org.testng.TestNG testng.xml
    
    验证输出。
    
      Before Test method
      Test method
      ===============================================
      Suite
      Total tests run: 1, Passes: 1, Failures: 0, Skips: 0
      ===============================================