TestNG是一个广泛使用的Java测试框架,它提供了一系列注解(annotations)来组织和控制测试执行流程。以下是一些常用的TestNG注解及其描述:
1. @Test:
- 这是最基本的注解,用于标记一个方法作为测试用例。可以包含多种属性,如`expectedExceptions`(期望抛出的异常)、`priority`(执行优先级)、`enabled`(是否启用该测试)、`dependsOnMethods`(依赖于其他方法)等。
2. @BeforeSuite:
- 标记的方法会在当前测试套件(Suite)中的所有测试用例开始运行之前执行,仅运行一次。
3. @AfterSuite:
- 标记的方法会在当前测试套件中的所有测试用例运行结束后执行,仅运行一次。
4. @BeforeTest:
- 标记的方法将在当前Test标签内的所有测试用例开始运行之前执行。
5. @AfterTest:
- 标记的方法将在当前Test标签内的所有测试用例运行结束后执行。
6. @BeforeClass:
- 标记的方法会在当前类中的任何测试方法被执行之前运行,仅针对每个类运行一次。
7. @AfterClass:
- 标记的方法会在当前类中的所有测试方法都被执行之后运行,同样仅针对每个类运行一次。
8. @BeforeMethod:
- 标记的方法会在每个测试方法执行之前运行。
9. @AfterMethod:
- 标记的方法会在每个测试方法执行之后运行。
10. @DataProvider:
- 用于提供测试数据给测试方法,使得测试可以数据驱动,执行多次。
11. @Factory:
- 用于批量创建测试类的实例,常用于参数化测试。
12. @Listeners:
- 用于指定TestNG监听器类,这些监听器可以监听测试过程中的各种事件,如测试开始、结束、成功、失败等。
13. @Ignore:
- 虽然不是TestNG的标准注解,但在某些情况下可以用来标记一个测试方法应该被忽略。
这些注解允许开发者灵活地控制测试的执行顺序、设置初始化和清理操作,以及处理测试之间的依赖关系,从而提高了测试的可读性和可维护性。