zoukankan      html  css  js  c++  java
  • TestNG基本注解

    TestNG的注解:

    注解描述
    @BeforeSuite 注解的方法将只运行一次,运行所有测试前此套件中。
    @AfterSuite 注解的方法将只运行一次此套件中的所有测试都运行之后。
    @BeforeClass 注解的方法将只运行一次先行先试在当前类中的方法调用。
    @AfterClass 注解的方法将只运行一次后已经运行在当前类中的所有测试方法。
    @BeforeTest 注解的方法将被运行之前的任何测试方法属于内部类的 <test>标签的运行。
    @AfterTest 注解的方法将被运行后,所有的测试方法,属于内部类的<test>标签的运行。
    @BeforeGroups 组的列表,这种配置方法将之前运行。此方法是保证在运行属于任何这些组第一个测试方法,该方法被调用。
    @AfterGroups 组的名单,这种配置方法后,将运行。此方法是保证运行后不久,最后的测试方法,该方法属于任何这些组被调用。
    @BeforeMethod 注解的方法将每个测试方法之前运行。
    @AfterMethod 被注释的方法将被运行后,每个测试方法。
    @DataProvider
    标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。
    该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。
    @Factory 作为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[]。
    @Listeners 定义一个测试类的监听器。
    @Parameters 介绍如何将参数传递给@Test方法。
    @Test 标记一个类或方法作为测试的一部分。

    写一个简单例子验证常用注解的执行过程:

    新建一个TestAnntation.java类

    import org.testng.annotations.Test;
    import org.testng.annotations.BeforeMethod;
    import org.testng.annotations.AfterMethod;
    import org.testng.annotations.DataProvider;
    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 TestAnnotation {
        
      @Test
      public void testcase1() {
          System.out.println("执行case1");
      }
      @Test
      public void testcase2() {
          System.out.println("执行case2");
      }
      @BeforeMethod
      public void beforeMethod() {
          System.out.println("我是beforeMethod");
      }
    
      @AfterMethod
      public void afterMethod() {
          System.out.println("我是afterMethod");
      }
    
      @BeforeClass
      public void beforeClass() {
          System.out.println("我是BeforeClass");
      }
    
      @AfterClass
      public void afterClass() {
          System.out.println("我是AfterClass");
      }
    
      @BeforeTest
      public void beforeTest() {
          System.out.println("我是BeforeTest");
      }
    
      @AfterTest
      public void afterTest() {
          System.out.println("我是AfterTest");
      }
    
      @BeforeSuite
      public void beforeSuite() {
          System.out.println("我是BeforeSuite");
      }
    
      @AfterSuite
      public void afterSuite() {
          System.out.println("我是AfterSuite");
      }
    
    }

    运行结果:

    RemoteTestNG starting
    我是BeforeSuite
    我是BeforeTest
    我是BeforeClass
    我是beforeMethod
    执行case1
    我是afterMethod
    我是beforeMethod
    执行case2
    我是afterMethod
    我是AfterClass
    我是AfterTest
    PASSED: testcase1
    PASSED: testcase2

    ===============================================
    Default test
    Tests run: 2, Failures: 0, Skips: 0
    ===============================================

    我是AfterSuite

    我们可以看到:

    • 首先所有beforeSuite()方法只执行一次。

    • 最后,afterSuite的()方法只执行一次。

    • 即使方法 beforeTest(), beforeClass(), afterClass() 和afterTest() 方法只执行一次。

    • beforeMethod()方法执行每个测试用例,但在此之前执行的测试用例。

    • afterMethod()方法执行每个测试用例,但测试用例执行后。

  • 相关阅读:
    修改输入框placeholder文字默认颜色-webkit-input-placeholder
    命令行
    一看就懂的ReactJs入门教程(精华版)
    JPG、PNG和GIF图片的基本原理及优化方法
    spring中的两个数据库事务DataSourceTransactionManager 和 JtaTransactionManager区别
    classpath和classpath*的区别
    转:log4j的使用简介
    javascript学习笔记
    Spring MVC 中 HandlerInterceptorAdapter的使用
    SVN代码管理发布
  • 原文地址:https://www.cnblogs.com/hanxiaomin/p/6180949.html
Copyright © 2011-2022 走看看