-
常用接口
-
IExecutionListener 监听TestNG运行的启动和停止。
-
IAnnotationTransformer 注解转换器,用于TestNG测试类中的注解。
-
ISuiteListener 测试套件监听器,监听测试套件的启动和停止。
-
ITestListener 测试运行的监听器。
-
IConfigurationListener 监听配置方法相关的接口。
-
IMethodInterceptor 用于修改TestNG即将运行的测试方法列表。
-
IInvokedMethodListener 测试方法拦截监听,用于获取被TestNG调用的在Method的Before 和After方法监听器。该方法只会被配置和测试方法调用。
-
Ihookable 若测试类实现了该接口,当@Test方法被发现时,它的run()方法将会被调用来替代@Test方法。这个测试方法通常在IHookCallBack的callback之上调用,比较适用于需要JASS授权的测试类。例如:
public void run(final IHookCallBack icb, ITestResult testResult) { // Preferably initialized in a @Configuration method mySubject = authenticateWithJAAs(); Subject.doAs(mySubject, new PrivilegedExceptionAction() { public Object run() { icb.callback(testResult); } }; }
-
Ireporter 实现该接口可以生成一份测试报告。
-
IRetryAnalyzer 该接口实现重试失败用例。
-
启用监听
-
使用注解@Listener({监听类.class})
@Listeners({SuiteListener.class}) public class InvokedMethodListenerExample { @BeforeSuite public void beforeSuite() { System.out.println("before suite"); } @Test public void t1() { System.out.println("t1 test method"); } @AfterSuite public void afterSuite() { System.out.println("after suite"); } }
-
在TestNG中配置监听类
?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite verbose="0" name="listeners-test"> <listeners> <listener class-name="listeners.ProgressTracker" /> <listener class-name="listeners.SuitListener" /> <listener class-name="listeners.RetryListener" /> </listeners> <test name="listeners.testng"> <packages> <package name="listeners" /> </packages> </test> </suite>
-
在maven-surefire插件中配置监听类
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.17</version> <configuration> <suiteXmlFiles> <suiteXmlFile>TestNG_${env}.xml</suiteXmlFile> </suiteXmlFiles> <properties> <property> <name>listener</name> <value>listeners.SuitListener, listeners.RetryListener</value> </property> </properties> </configuration> </plugin>
-
类
TestListenerAdapter 一个基于ITestListener 的简单适配器,存储了被运行的所有测试用例。可以通过如下方法获取到测试结果:
- getPassedTests()
- getFailedTests()
- getSkippedTests()
当你扩展这个类来重载这些方法时,如果你想要这个列表测试Test被维护时,需要调用super的同类。