TestNG - 基本注解



在 JUnit 3 中,指示测试方法的传统方式是在其名称前加上 test。这是一种非常有效的方法,用于将类中的某些方法标记为具有特殊含义,但这种命名方式扩展性不佳(如果我们想为不同的框架添加更多标签怎么办?)并且相当不灵活(如果我们想向测试框架传递其他参数怎么办?)。

注解在 JDK 5 中正式添加到 Java 语言中,TestNG 选择使用注解来注释测试类。

以下是 TestNG 支持的注解列表:

序号 注解 & 描述
1

@BeforeSuite

带注解的方法将在此套件中的所有测试运行之前仅运行一次。

2

@AfterSuite

带注解的方法将在此套件中的所有测试运行之后仅运行一次。

3

@BeforeClass

带注解的方法将在当前类中的第一个测试方法被调用之前仅运行一次。

4

@AfterClass

带注解的方法将在当前类中的所有测试方法运行之后仅运行一次。

5

@BeforeTest

带注解的方法将在 <test> 标签内的类的任何测试方法运行之前运行。

6

@AfterTest

带注解的方法将在 <test> 标签内的类的所有测试方法运行之后运行。

7

@BeforeGroups

此配置方法将在其之前运行的组列表。此方法保证在属于这些组中的任何第一个测试方法被调用之前不久运行。

8

@AfterGroups

此配置方法将在其之后运行的组列表。此方法保证在属于这些组中的任何最后一个测试方法被调用之后不久运行。

9

@BeforeMethod

带注解的方法将在每个测试方法之前运行。

10

@AfterMethod

带注解的方法将在每个测试方法之后运行。

11

@DataProvider

将方法标记为为测试方法提供数据。带注解的方法必须返回一个 Object[ ][ ],其中每个 Object[ ] 可以分配给测试方法的参数列表。想要从这个 DataProvider 接收数据的 @Test 方法需要使用一个数据提供程序名称,该名称等于此注解的名称。

12

@Factory

将方法标记为工厂,该工厂返回 TestNG 将用作测试类的对象。该方法必须返回 Object[ ]。

13

@Listeners

在测试类上定义监听器。

14

@Parameters

描述如何将参数传递给 @Test 方法。

15

@Test

将类或方法标记为测试的一部分。

使用注解的好处

以下是使用注解的一些好处:

  • TestNG 通过查找注解来识别它感兴趣的方法。因此,方法名称不受任何模式或格式的限制。

  • 我们可以向注解传递其他参数。

  • 注解是强类型的,因此编译器会立即标记任何错误。

  • 测试类不再需要扩展任何内容(例如,对于 JUnit 3 的 TestCase)。

广告