Testng 简明教程

TestNG - Basic Annotations

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

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

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

Sr.No.

Annotation & Description

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 方法需要使用名称相等的 dataProvider 名称。

12

* @Factory* 将某个方法标记为一个工厂,由 TestNG 用作测试类。方法必须返回 Object[ ]。

13

* @Listeners* 定义测试类中的监听器。

14

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

15

* @Test* 将一个类或方法标记为测试版。

Benefits of Using Annotations

以下是使用说明的优点:

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

  2. 我们可以向说明传递其他参数。

  3. 说明类型很强,因此编译器会立即标记任何错误。

  4. 测试类不再需要扩展任何内容(如 JUnit 3 的 TestCase)。