下面是TestNG标注和参数的一个快速预览
@BeforeSuite | 被标注的方法会在这个套件的所有测试执行之前执行 |
@AfterSuite | 被标注的方法会在这个套件的所有测试执行之后执行 |
@BeforeTest | 被标注的方法会在<test>标签内的类中的所有测试方法执行之前执行 |
@AfterTest | 被标注的方法会在<test>标签内的类中的所有测试方法执行之后执行 |
@BeforeGroups | 被标注的方法会在属于这些组的第一个测试方法被调用之前短暂的执行 |
@AfterGroups | 被标注的方法会在属于这些组的最后一个测试方法被调用之后短暂的执行 |
@BeforeClass | 被标注的方法会在当前类的第一个测试方法被调用前执行 |
@AfterClass | 被标注的方法会在当前类的所有测试方法执行之后被执行 |
@BeforeMethod | 被标注的方法会在每一个测试方法执行之前被执行 |
@AfterMethod | 被标注的方法会在每一个测试方法执行之后被执行 |
alwaysRun |
对于before方法:如果设置为true,被配置的方法会忽略它所属的组而执行 对于after方法:如果设置为true,即使一个或多个方法调用失败或者被跳过了,被配置的方法仍然执行 |
dependsOnGroups | 方法所依赖的组列表 |
dependsOnMethods | 方法所以来的方法列表 |
enabled | 方法在当前类/方法上的可行性状态 |
groups | 当前类/方法所属的组列表 |
inheritGroups | 如果为true,当前方法就会属于@Test标注在class级别所指定的组 |
@DataProvider | 被标注的方法是给测试方法提供数据的,并且该方法必须返回Object[][],每个Object[]都可以被赋值给测试方法的参数列表。@Test方法想要从DataProvider接收数据,它需要使用与这个标注相同名称的dataProvider名称 |
name | 数据提供者的名称,如果没有名称,那么该数据提供者的名称会被自动设置成这个方法名 |
parallel | 如果设置为true,使用该数据提供者的测试会多线程执行,默认值为false |
@Factory | 将一个方法标注为工厂,返回的对象被TestNG用作Test classes。这个方法必须返回Object[] |
@Listeners | 在test class上定义监听器 |
value | 继承了 org.testng.ITestNGListener的类的列表 |
@Parameters | 描述如何将参数传递给@Test方法 |
value | 用于填充该方法参数的值列表 |
@Test | 将一个类或一个方法标注为测试的一部分 |
alwaysRun | 如果设置为true, 这个测试方法还是会被执行,即使它依赖的方法失败了 |
dataProvider | 该测试方法的数据提供者名称 |
dataProviderClass | 用于查找数据提供者的类,如果没有指定,数据提供者会在当前的测试方法或者它的基类中被查找。如果指定了这个属性,这个数据提供者方法需要在这个指定的类中设置为static |
dependsOnGroups | 这个方法依赖的组列表 |
dependsOnMethods | 这个方法依赖的方法列表 |
description | 该方法的描述 |
enabled | 当前类/方法是否被激活 |
expectedException | 测试方法可能会抛出的异常,如果没有异常或者抛出的异常不在列表中,这次测试会被标记为失败 |
groups | 这个类/方法属于的组列表 |
invocationCount | 这个方法会被调用的次数 |
invocationTimeOut | 所有调用所耗费的时间最大值,invocationCount如果未指定,那么该属性被忽略 |
priority | 该测试方法的优先级,低优先级的会先被安排 |
successPercentage | 该测试方法的成功期望百分比 |
singleThreaded | 如果被设置为true,所有的在改测试类中的方法保证在同一个线程内运行,即使这个测试现在正在以parallel="methods"执行,这个属性只在class级别起作用,若使用在方法级别就会被忽略,提示:这个属性曾经被称为sequential顺序 |
timeOut | 这个测试会使用的最大时间 |
threadPoolSize | 该方法线程池的最大值,这个方法会被指定了invocationCount的多线程被调用。提示:这个属性会被忽略如果invocationCount未被指定 |