zoukankan      html  css  js  c++  java
  • TestNG学习-002-annotaton 注解概述及其执行顺序

    此文主要讲述用 TestNG 基础的 annotation (注解)知识,及其执行的顺序,并通过一个 TestNG 简单的实例演示 annotation 的执行顺序

    希望能对初学 TestNG 测试框架的亲们有所帮助。若有不足之处,敬请大神指正,不胜感激!

     

    言归正传,以下为 TestNG 常用的 annotation 及其释义,敬请参阅。

    @BeforeSuite:被此注解的方法将在所有测试运行之前运行该方法。

    @AfterSuite: 被此注解的方法将在所有测试运行之后运行该方法。

     

    @BeforeTest: 被此注解的方法,将在测试运行之前运行。

    @AfterTest: 被此注解的方法,将在测试运行之后运行。

     

    @BeforeGroups:被此配置的方法,将在列表中的 group 前运行,这个方法保证在第一个属于这些组列表的测试方法调用前运行。

    @AfterGroups:被此配置的方法,将在列表中的 group 后运行,这个方法保证在最后一个属于这些组列表的测试方法调用后运行。

    @BeforeClass:被此注解的方法,将在当前类的第一个测试方法调用之前运行。

    @AfterClass:被此注解的方法,将在当前类的所有测试方法调用之后运行。

    @BeforeMethod:被此注解的方法,将在每个测试方法调用之前运行。

    @AfterMethod:被此注解的方法,将在每个测试方法调用之后运行。

    annotation 执行顺序:BeforeSuite > BeforeTest > BeforeClass > DataProvider > BeforeMethod > Test > AfterMethod > AfterClass > AfterTest > AfterSuite

    实例源代码如下所示:

     1 /**
     2  * Aaron.ffp Inc.
     3  * Copyright (c) 2004-2015 All Rights Reserved.
     4  */
     5 package main.java.aaron.sele.demo;
     6 
     7 import org.testng.Assert;
     8 import org.testng.annotations.Test;
     9 import org.testng.annotations.BeforeMethod;
    10 import org.testng.annotations.AfterMethod;
    11 import org.testng.annotations.DataProvider;
    12 import org.testng.annotations.BeforeClass;
    13 import org.testng.annotations.AfterClass;
    14 import org.testng.annotations.BeforeTest;
    15 import org.testng.annotations.AfterTest;
    16 import org.testng.annotations.BeforeSuite;
    17 import org.testng.annotations.AfterSuite;
    18 
    19 /**
    20  * TestNG annotation(注解)执行顺序实例
    21  * 
    22  * @author Aaron.ffp
    23  * @version V1.0.0: autoUISelenium main.java.aaron.sele.demo TestNG_annotationDemo.java, 2015-1-23 00:57:24 Exp $
    24  */
    25 public class TestNG_annotationDemo {
    26     @Test(dataProvider = "add")
    27     public void f(int a, int b, int s) {
    28         System.out.println("Test");
    29         Assert.assertEquals((a + b), s, a + " + " + b  + " <> " + s);;
    30     }
    31     
    32     @BeforeMethod
    33     public void beforeMethod() {
    34         System.out.println("BeforeMethod");
    35     }
    36     
    37     @AfterMethod
    38     public void afterMethod() {
    39         System.out.println("AfterMethod");
    40     }
    41     
    42     @DataProvider
    43     public Object[][] add() {
    44         System.out.println("DataProvider");
    45         return new Object[][] {
    46             new Object[] { 1, 3, 4 },
    47             new Object[] { 2, 5, 7 },
    48             new Object[] { 2, -5, -3 },
    49         };
    50     }
    51     
    52     @BeforeClass
    53     public void beforeClass() {
    54         System.out.println("BeforeClass");
    55     }
    56     
    57     @AfterClass
    58     public void afterClass() {
    59         System.out.println("AfterClass");
    60     }
    61     
    62     @BeforeTest
    63     public void beforeTest() {
    64         System.out.println("BeforeTest");
    65     }
    66     
    67     @AfterTest
    68     public void afterTest() {
    69         System.out.println("AfterTest");
    70     }
    71     
    72     @BeforeSuite
    73     public void beforeSuite() {
    74         System.out.println("BeforeSuite");
    75     }
    76     
    77     @AfterSuite
    78     public void afterSuite() {
    79         System.out.println("AfterSuite");
    80     }
    81 }
    TestNG annotation(注解)执行顺序演示实例

    脚本执行结果如下所示:

    annotation 执行顺序为:BeforeSuite > BeforeTest > DataProvider > BeforeMethod > Test > AfterMethod > AfterClass > AfterTest > AfterSuite

     

    至此,TestNG学习-002-annotaton 注解概述及其执行顺序 顺利完结,希望此文能够给初识 TestNG 测试框架的您一份参考。

    最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

     

  • 相关阅读:
    Java内存模型
    BigDecimal踩过的大坑
    Java开发小技巧
    多线程同步辅助工具类
    ReentrantLock中的公平锁与非公平锁
    ReentrantLock与synchronized的区别
    推荐一个Java设计模式写的很好的博客
    线程池ThreadPoolExecutor工作原理
    支付系统架构设计转载
    linux 部署脚本
  • 原文地址:https://www.cnblogs.com/fengpingfan/p/4243060.html
Copyright © 2011-2022 走看看