TestNG——Annotation

TestNG是一个流行的Java测试框架,本文介绍了TestNG中的一系列注解,如@BeforeSuite、@AfterSuite等,以及它们在测试执行前后的顺序和作用。这些注解用于定义测试的配置方法,如在所有测试开始前执行的@BeforeSuite和每个测试方法执行后的@AfterMethod。此外,还提到了@DataProvider用于提供测试数据,以及@Test注解的各种属性,如expectedExceptions和enabled,用于控制测试行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介: TestNG的官方文档的中文翻译版第二章,原文请见 http://testng.org/doc/documentation-main.html2 - Annotation这里是TestNG中用到的annotation的快速预览,还有它们的属性。

下面是 TestNG 中可用的注释及其属性的快速概述:

@BeforeSuite
@AfterSuite
@BeforeTest
@AfterTest
@BeforeGroups
@AfterGroups
@BeforeClass
@AfterClass
@BeforeMethod
@AfterMethod

TestNG类的配置信息 :
@BeforeSuite: 该注解标记的方法将在<suite>标签中所有的测试方法执行之前执行。
@AfterSuite: 该注解标记的方法将在<suilte>标签中所有的测试方法执行之后执行。
@BeforeTest: 该注解标记的方法将在<test>标签中所有的测试方法执行之前执行。
@AfterTest: 该注解标记的方法将在<test>标签中所有的测试方法执行之后执行。
@BeforeGroups: 该注解标记的方法将在组列表运行之前运行。这个方法保证在调用属于任何这些组的第一个测试方法之前运行。
@AfterGroups: 该注解标记的方法将在组列表运行之后运行。该方法保证在调用属于任何这些组的最后一个测试方法之后运行。
@BeforeClass: 该注解标记的方法将在调用该类的第一个测试方法之前执行。
@AfterClass: 该注解标记的方法将在该类所有的测试方法运行之后执行。
@BeforeMethod: 该注解标记的方法将在每一个测试方法执行之前运行。
@AfterMethod: 该注解标记的方法将在每一个测试方法执行之后执行。

在TestNG类的超类中注释的行为
当这些注解在 TestNG 超类上使用时,也一并会被子类继承下来。因此,在一个公共超类中集中多个测试方法的设置是很有用的。
在这种情况下,TestNG保证“@Before”方法按继承顺序执行(首先执行最高的超类,然后沿着继承链向下执行),“@After”方法按相反的顺序执行(沿着继承链向上执行)。

alwaysRun对于before方法(beforeSuite, beforeTest, beforeTestClass和beforeTestMethod,但不包括beforeGroups):如果设置为true,这个配置方法将运行,无论它属于哪个组。
对于after方法(afterSuite, afterClass,…):如果设置为true,即使之前调用的一个或多个方法失败或被跳过,这个配置方法也会运行。
dependsOnGroups此方法所依赖的组列表。
dependsOnMethods此方法所依赖的方法列表
enabled这个类的方法是否激活
groups该类/方法所属的组列表
inheritGroups如果为true,此方法属于在类级别被@Test注解指定的组
onlyForGroups只适用于@BeforeMethod和@AfterMethod。如果指定,则只有当对应的测试方法属于列出的组之一时,才会调用此setup/teardown方法。
@DataProvider

标记一个方法用于为测试方法提供数据。

带有该注解的方法,必须返回一个 Object[][],其中每个 Object[] 都可以成为对接测试方法的参数列表。从这个DataProvider接收数据@Test方法需要使用一个和当前注释相同名称的dataProvider名称

name当前DataProvier方法的名称。如果不传入时,默认使用该方法的methodName。
parallel如果设置为true,则使用该方法提供数据的测试方法,将并行(多线程)执行。默认值为false
@Factory标记方法作为一个返回对象的工厂,这些对象将被TestNG用于作为测试类。这个方法必须返回Object[]
@Listeners在测试类上,定义监听器。
value一个继承了 org.testng.ITestNGListener 的类的数组
@Parameters 描述如何传递参数给@Test方法
value 用于填充这个方法的参数的变量列表
@Test 标记一个类或方法作为测试的一部分
alwaysRun如果设置为true,在依赖的测试方法执行失败后,此测试方法也会执行。
dataProvider这个测试方法的dataprovider的名称
dataProviderClass

用于查找data provider的类。 如果不指定,将在当前测试方法所在的类或者它的基类上查找data provider。

如果这个属性被指定, 则data provider方法需要是指定类的static方法。

dependsOnGroups此测试方法依赖的组列表。
dependsOnMethods此测试方法依赖的方法列表。
description测试方法的描述
enabled当前类的方法或方法是否被激活
expectedExceptions测试方法期望抛出的异常列表。如果没有异常或者抛出的不是列表中的任何一个,当前方法都将标记为失败.
groups当前类/方法所属的组列表
invocationCount当前方法被调用的次数
invocationTimeOut此测试方法在所有每次调用的累计时间中所花费的最大时长,单位毫秒。如果未指定invocationCount,则将忽略此属性。
priority此测试方法的优先级。序号小的优先执行
successPercentage当前方法期望的成功率
singleThreaded

如果设置为true,当前测试类上的所有方法保证按照顺序运行。甚至测试们在parallel="true"的情况下.
这个属性只能用于类级别,如果用于方法级别将被忽略。

注意:此属性过去被称为sequential(现在已弃用)。

timeOut当前方法容许花费的最大时间,单位毫秒。(超时后会报失败)
threadPoolSize当前方法的线程池大小。方法将被多线程调用,次数由invocationCount参数指定
注意:如果invocationCount没有指定则这个属性将被忽略

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值