testng翻译之二--注解
来源:互联网 发布:明星出道前照片 知乎 编辑:程序博客网 时间:2024/05/18 02:03
下面是testNG中提供的注解及对注解的解释:
<suite>
中所有其他方法之前运行 @AfterSuite @AfterSuite注解的方法将在此套件<suite>
中所有其他方法之后运行 @BeforeTest @BeforeTest注解的方法将在此套件中<suite>
所有的带@Test
标签的方法之前运行; @AfterTest @AfterTest注解的方法将在此套件<suite>
中所有的带@Test
标签的方法之后运行; @BeforeGroups @BeforeGroups注解的方法在 包含在组列表中配置的任一方法 之前运行; @AfterGroups @AfterGroups注解的方法在 包含在组列表中配置的任一方法 之后运行; @BeforeClass @BeforeClass注解的方法在 调用当前类中的第一个Test方法之前运行; @AfterClass @AfterClass注解的方法在 调用当前类中的所有的Test方法运行之后再运行; @BeforeMethod @BeforeMethod注解的方法在 每个测试方法之前运行; @AfterMethod @AfterMethod注解的方法在 每个测试方法之后运行;下面通过一个demo来看每个注解所修饰方法的执行顺序:
- testngDemo类
- testngDemo2类
- testng.xml
testngDemo类
import org.testng.annotations.*;/** * Created by wei.hu on 2016/12/30. */public class testngDemo { @BeforeSuite public void beforSuiteTest() { System.out.println("BeforeSuite"); } @AfterSuite public void afterSuiteTest() { System.out.println("AfterSuite"); } @BeforeTest public void beforeTest() { System.out.println("BeforeTest"); } @AfterTest public void afterTest() { System.out.println("AfterTest"); } @BeforeGroups public void beforeGroupsTest() { System.out.println("BeforeGroupsTest"); } @AfterGroups public void afterGroupsTest() { System.out.println("AfterGroupsTest"); } @BeforeClass public void beforeClassTest() { System.out.println("BeforeClassTest"); } @AfterClass public void afterClassTest() { System.out.println("AfterClassTest"); } @BeforeMethod public void beforeMethodTest() { System.out.println("BeforeMethod"); } @AfterMethod public void afterMethodTest() { System.out.println("AfterMethod"); } @Test public void demo1Test() { System.out.println("Test1"); } @Test public void demo2Test() { System.out.println("Test2"); }}
testngDemo2类
import org.testng.annotations.*;/** * Created by wei.hu on 2016/12/30. */public class testngDemo2 { @BeforeSuite public void beforSuiteTest() { System.out.println("BeforeSuite_"); } @AfterSuite public void afterSuiteTest() { System.out.println("AfterSuite_"); } @BeforeTest public void beforeTest() { System.out.println("BeforeTest_"); } @AfterTest public void afterTest() { System.out.println("AfterTest_"); } @BeforeGroups public void beforeGroupsTest() { System.out.println("BeforeGroupsTest_"); } @AfterGroups public void afterGroupsTest() { System.out.println("AfterGroupsTest_"); } @BeforeClass public void beforeClassTest() { System.out.println("BeforeClassTest_"); } @AfterClass public void afterClassTest() { System.out.println("AfterClassTest_"); } @BeforeMethod public void beforeMethodTest() { System.out.println("BeforeMethod_"); } @AfterMethod public void afterMethodTest() { System.out.println("AfterMethod_"); } @Test public void demo1Test() { System.out.println("Test1_"); } @Test public void demo2Test() { System.out.println("Test2_"); }}
testng.xml
<?xml version="1.0" encoding="UTF-8" ?><suite name="autotest" parallel="methods" thread-count="1" verbose="1" time-out="600000"> <test name="test"> <classes> <class name="testngDemo"/> <class name="testngDemo2"/> </classes> </test></suite>
执行结果:
BeforeSuiteBeforeSuite_BeforeTestBeforeTest_BeforeClassTestBeforeMethodTest1AfterMethodBeforeMethodTest2AfterMethodAfterClassTestBeforeClassTest_BeforeMethod_Test1_AfterMethod_BeforeMethod_Test2_AfterMethod_AfterClassTest_AfterTestAfterTest_AfterSuiteAfterSuite_
结论:
在同一个<suite>
中,对于多个<class>
(假设有类A与类B),有如下的执行顺序:
注:同一个suite中的多个class的顺序无法确定(先执行A还是先执行B不确定)。
- 执行类A中的
@BeforeSuite
注解的方法; - 执行类B中的
@BeforeSuite
注解的方法; - 执行类A中的
@BeforeTest
注解的方法; - 执行类B中的
@BeforeTest
注解的方法; - 执行类A中的
@BeforeClass
注解的方法; - 执行类A中的
@BeforeMethod
注解的方法; - 执行类A中的
Test1
方法; - 执行类A中的
@AfterMethod
注解的方法; - 执行类B中的
@BeforeMethod
注解的方法; - 执行类B中的
Test2
方法; - 执行类B中的
@AfterMethod
注解的方法; - 执行类B中的
@AfterClass
注解的方法; - 执行类B中的
@BeforeMethod
注解的方法; - 执行类B中的
Test1
方法; - 执行类B中的
@AfterMethod
注解的方法; - 执行类B中的
@BeforeMethod
注解的方法; - 执行类B中的
Test2
方法; - 执行类B中的
@AfterMethod
注解的方法; - 执行类B中的
@AfterClass
注解的方法; - 执行类A的
@AfterTest
注解的方法; - 执行类B的
@AfterTest
注解的方法; - 执行类A的
@AfterSuite
注解的方法; - 执行类B的
@AfterSuite
注解的方法;
0 0
- testng翻译之二--注解
- testng翻译之三--testng.xml
- testng翻译之四--Running TestNG
- Jtester之TestNG常用注解
- Jtester之TestNG:@Factory注解
- Jtester之TestNG:@Listener注解
- 自动化测试框架selenium+java+TestNG——TestNG注解、执行、测试结果和测试报告 之二
- testng源码阅读之二
- TestNG入门——注解之@Test
- Testng之使用@DataProvider注解做数据驱动
- TestNG入门——注解之Before/After
- testng翻译之一--介绍
- TestNG指南2-注解
- TestNG 基本注解
- TestNg常用注解
- TestNG的常用注解
- TestNG中的注解说明
- TestNG基本注解(注释)
- Objective-C id类型实现原理
- 提高网页性能的23条规则
- Cordova Android 返回键拦截(backbutton)和退出(再点击一次跳出)
- Java中流的问题总结(实例)
- 运行中的处理器所处的三种状态--写在2016年最后一贴
- testng翻译之二--注解
- Android 开源日志库 Logger 使用教程
- JavaWeb入门(三) 集合篇
- 数据结构经典算法学习之八皇后01
- 深度学习的并行问题
- 反射和特性(2.反射特性信息)
- 常用的JS/jQuery技术和技巧
- dialog
- 网页中获取网络mp3文件的时常