TestNG如何修改运行结果(通过使用监听器和报表器,可以很轻松的生成自己的TestNG报表)

  • 监听器 实现接口 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

这样就能在每个测试函数运行完后对测试结果进行更改。

posted on 2012-11-26 13:57  张飞_  阅读(4445)  评论(0编辑  收藏  举报

导航