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 测试框架的您一份参考。

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

 

posted @ 2015-01-23 01:06  范丰平  Views(1133)  Comments(0Edit  收藏  举报