- 监听器 实现接口 org.testng.ITestListener ,并且会在测试开始、通过、失败等时刻实时通知
- 报告器 实现接口 org.testng.IReporter ,并且当整个测试运行完毕之后才会通知。IReporter 接受一个对象列表,这些对象描述整个测试运行的情况
例如,如果你想要生成一个PDF报告,那么就不需要实时通知,所以用 IReporter。如果需要写一个实时报告,例如用在GUI上,还要在每次测试时(下面会有例子和解释)有进度条或者文本报告显示点 ("."),那么 ITestListener 是你最好的选择。但这两种方式,都只能支持testng命令行运行时添加-listener命令
下面以org.testng.ITestListener举例:
public class DotTestListener extends TestListenerAdapter { private int m_count = 0; @Override public void onTestFailure(ITestResult tr) { log("F"); } @Override public void onTestSkipped(ITestResult tr) { log("S"); } @Override public void onTestSuccess(ITestResult tr) { log("."); } private void log(String string) { System.out.print(string); if (m_count++ % 40 == 0) { System.out.println(""); } } }
使用的时候java org.testng.TestNG -listener com.test.DotTestListener testng.xml
这样就能在每个测试函数运行完后对测试结果进行更改。