- 监听器 实现接口 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
这样就能在每个测试函数运行完后对测试结果进行更改。