如何根据故障类型对TestNG故障进行分类?

时间:2017-06-05 10:00:38

标签: testng testng-eclipse

我试图根据导致错误的异常/错误类型对TestNG失败进行分类。有办法做到这一点吗?我对TestNG来说相对较新,所以感谢任何可能的帮助

1 个答案:

答案 0 :(得分:2)

是的,您可以按照以下整体方法执行此操作。

  • 构建实现TestNG界面org.testng.IReporter
  • 的自定义报告器实现
  • 在此接口实现中,您将访问代表测试方法结果的ITestResult对象,然后通过org.testng.ITestResult#getThrowable检查其异常,然后包含您的逻辑以对故障进行分类。

这是一个草案实施

public class SampleReporter implements IReporter {
    @Override
    public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {
        for (ISuite suite : suites) {
            Map<String, ISuiteResult> suiteResults = suite.getResults();
            for (ISuiteResult sr : suiteResults.values()) {
                ITestContext tc = sr.getTestContext();
                Set<ITestResult> failedResults = tc.getFailedTests().getAllResults();
                for (ITestResult failedResult : failedResults) {
                    Throwable throwable = failedResult.getThrowable();
                    if (throwable instanceof WebDriverException) {
                        //classify this as a selenium exception
                    }
                }
            }
        }
    }
}

您现在可以决定使用以下选项之一

连接此侦听器
  • 在测试类上使用@Listeners注释。
  • 使用套件xml文件中的<listeners>标记
  • 使用ServiceLoader方法

您可以参考我的this博客文章,了解更多有关TestNG听众的信息,以及上面列出的所有上传听众注意方式。