一、TestNG测试Case注解

摘要:
在全部@Tests执行之前/之后,在每个@Test方法执行之前/后,@Test:很少使用@BeforeSuite/@AfterSuite:@Test[Test Case02]这是:publicclassTestNGDemo{@BeforeTestpublicvoidbeforeTest(){/在类文件运行TestCase之前。

TestNG常用注解有:
@BeforeTest/@AfterTest : 一个测试类中,在所有@Test整体执行之前/之后,仅运行一次。
@BeforeMethod/@AfterMethod : 一个测试类中,在每个@Test方法执行之前/之后,运行一次。
@Test : 测试Case,执行顺序按照每个case方法名称的ASCII表的顺序来执行,所以建议每个Case基于前置和后置方法,可以独立运行。
@BeforeClass/@AfterClass : 类实例化前后, 被执行, 主要用于设置环境变量等。
@BeforeGroups/@AfterGroups : 不常用
@BeforeSuite/@AfterSuite : 不常用

/以下为实例演示和结果输出/
结果:
这是第1个:BefeTesort
这是第2个:BefeTesort
这是:@BeforeMethod
这是:@Test 【测试Case01】
这是:@AfterMethod
这是:@BeforeMethod
这是:@Test 【测试Case02】
这是:@AfterMethod
这是:@AfterTest

===============================================
Default Suite
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0

代码:
package webdriver.demo;
import org.testng.annotations.;
public class TestNGDemo {
@BeforeTest
public void beforTest(){
/

会在这个Class文件运行TestCase之前,运行且仅运行一次,例如数据准备
/
System.out.println("这是第1个:BefeTesort");
}
@BeforeTest
public void beforTest2(){
/

一个测试类中是可以多个BeforeTest注解,但建议做好封装,BeforeTest中,仅调用已封装好的类即可。
/
System.out.println("这是第2个:BefeTesort");
}
@BeforeMethod
public void beforeMethod(){
/

会在每一个@Test注解的TestCase之前,运行且仅运行一次
/
System.out.println("这是:@BeforeMethod");
}
@Test
public void case_1(){
/

@Test注解表示,这是一个测试Case
/
System.out.println("这是:@Test 【测试Case01】");
}
@Test
public void case_2(){
System.out.println("这是:@Test 【测试Case02】");
}
@AfterTest
public void afterTest(){
/

@AfterTest 效果与BeforeTest一样,不同点在于在所有TestCase运行完后,运行且仅运行一次,进行后置处理
/
System.out.println("这是:@AfterTest");
}
@AfterMethod
public void afterMethod(){
/

@AfterMethod 效果与BerforMethod一样,不同点在于在每个TestCase方法运行完后,运行一次,比如每个case最后一步需要关闭浏览器,那么可以抽取出来,写在afterMethod里
*/
System.out.println("这是:@AfterMethod");
}
}

免责声明:文章转载自《一、TestNG测试Case注解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇自己动手写中文分词解析器完整教程,并对出现的问题进行探讨和解决(附完整c#代码和相关dll文件、txt文件下载)go 优化技巧下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

cglib应用

  JDK的动态代理,经常被用来动态地创建对象的代理。JDK的动态代理用起来非常简单,但是有一个限制,就是使用动态代理的对象必须实现一个或多个接口。如果想代理没有实现接口,还可以使用cglib包来完成代理。   cglib的底层通过使用一个小而快的字节码处理框架ASM,来转换字节码并生成新的代理类。所以基于cglib开发时需要引入cglib的jar包和AS...

JPA实体类监听器@EntityListeners注解使用实例

被@Prepersist注解的方法 ,完成save之前的操作。被@Preupdate注解的方法 ,完成update之前的操作。被@PreRemove注解的方法 ,完成remove之前的操作。被@Postpersist注解的方法 ,完成save之后的操作。被@Postupdate注解的方法 ,完成update之后的操作。被@PostRemovet注解的方法...

instanceof 和 isInstance 强转 类型 class [MD]

博文地址 我的GitHub 我的博客 我的微信 我的邮箱 baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 目录 目录 目录 简介 测试 继承关系 测试案例 基本测试 测试多态 测试null 测试数组 测试集合 测试基本类型 打印结果 简介 区别: instance...

jdk1.8 对数组及arrays类对数组的操作与增强

数组的初始化有两种方式 静态初始化: 初始化时由程序员显示置顶每个数组的初始值,由系统决定数组长度。如: int[] a1 = new int[] {1,2,3,4}; 动态初始化:初始化时由程序员只指定数组长度,由系统为数组元素分配初始值。如: int[] a = new int[5];   写一个类测试一下 package chenlizhi;...

Groovy 学习手册(4)

6. 领域特定语言 Groovy 有许多特性,使它非常适合写DSL(领域特定语言)。这些特性包活: 具有委托机制的闭包; 点号(.)和语句末尾的分号(;)是可选的; 运算符的重载(例如,加号,减号等); methodMissing 和 propertyMissing 方法 Tip 关于 DSLs (Domain Specific Languag...

java二维数组

1 二维数组的定义方式 二维数组的定义有很多方式 第一种方式: int[][] arr = new int[3][4]; 上面的代码相当于定义了一个3*4的二维数组,即二维数组的长度为3,二维数组中的每个元素又是一个长度为4的数组。 第二种方式: int[][] arr = new int[3][]; 第二种方式和第一种类似,只是数组中每个元素的长度不确定...