在JUnit 3中指示测试方法的传统方法是在名称前加上test.这是一种非常有效的方法,用于将类中的某些方法标记为具有特殊含义,但命名不能很好地扩展(如果我们想为不同的框架添加更多标记,会怎样?)并且相当不灵活(如果我们怎么办?想要将其他参数传递给测试框架?).
注释在JDK 5中正式添加到Java语言中,TestNG可以选择使用注释来注释测试类.
以下是TestNG支持的注释列表 :
Sr.No. | Annotation&说明 |
---|---|
1 | @BeforeSuite 在此套件中的所有测试运行之前,带注释的方法只运行一次. |
2 | @AfterSuite 在此套件中的所有测试运行后,带注释的方法只运行一次. |
3 | @BeforeClass 注释方法只会在调用当前类的第一个测试方法之前运行一次. |
4 | @AfterClass 带注释的方法仅会运行一旦所有当前类的测试方法都已运行. |
5 | @BeforeTest 带注释的方法将在任何属于该方法的测试方法之前运行里面的课程LT;试验>标签运行. |
6 | @AfterTest 带注释的方法将在属于< test>内的类的所有测试方法之后运行.标签已经运行. |
7 | @BeforeGroups 此配置方法之前将运行的组列表.保证在调用属于任何这些组的第一个测试方法之前不久运行此方法. |
8 | @AfterGroups 组列表此配置方法将在之后运行.保证在调用属于任何这些组的最后一个测试方法后不久运行此方法. |
9 | @BeforeMethod 带注释的方法将在每种测试方法之前运行. |
10 | @AfterMethod 带注释的方法将在每种测试方法之后运行. |
11 | @ DataProvider 将方法标记为为测试方法提供数据.带注释的方法必须返回一个Object [] [],其中每个Object []都可以分配测试方法的参数列表.想要从此DataProvider接收数据的@Test方法需要使用dataProvider名称等于此批注的名称. |
12 | @Factory Marks作为工厂的方法,返回将由TestNG用作Test类的对象.该方法必须返回Object []. |
13 | @Listeners 在测试类上定义侦听器. |
14 | @Parameters 描述如何将参数传递给@Test方法. |
15 | @Test 标记a作为测试一部分的类或方法. |
以下是使用注释和减号的一些好处;
TestNG识别通过查找注释,它感兴趣的方法.因此,方法名称不限于任何模式或格式.
我们可以将其他参数传递给注释.
注释是强类型的,因此编译器会立即标记任何错误.
测试类不再需要扩展任何内容(如作为TestCase,用于JUnit 3).