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

如何根据故障类型对TestNG故障进行分类?,testng,testng-eclipse,Testng,Testng Eclipse,我试图根据导致错误的异常/错误类型对TestNG失败进行分类。有没有办法做到这一点?我对TestNG比较陌生,因此如果您能提供任何可能的帮助,我将不胜感激。是的,您可以按照下面的总体方法进行操作 构建实现TestNG接口的自定义报告器实现org.TestNG.IReporter 在此接口实现中,您将访问表示测试方法结果的ITestResult对象,然后通过org.testng.ITestResult#getThrowable检查其异常,然后包括对故障进行分类的逻辑 下面是一个实现草案 pub

我试图根据导致错误的异常/错误类型对TestNG失败进行分类。有没有办法做到这一点?我对TestNG比较陌生,因此如果您能提供任何可能的帮助,我将不胜感激。

是的,您可以按照下面的总体方法进行操作

  • 构建实现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
                    }
                }
            }
        }
    }
}
公共类SampleReporter实现IReporter{
@凌驾
公共void生成器报告(列表xmlSuites、列表suites、字符串输出目录){
适用于(ISuite:suites){
Map suiteResults=suite.getResults();
对于(ISuiteResult sr:suiteResults.values()){
ITestContext tc=sr.getTestContext();
设置failedResults=tc.getFailedTests().getAllResults();
对于(ITestResult failedResult:failedResults){
Throwable-Throwable=failedResult.getThrowable();
if(WebDriverException的可丢弃实例){
//将其归类为selenium异常
}
}
}
}
}
}
您现在可以决定使用以下选项之一连接此侦听器

  • 在测试类上使用
    @Listeners
    注释
  • 在套件xml文件中使用
    标记
  • 使用ServiceLoader方法

您可以参考我的博客文章,了解更多关于TestNG监听器的一般信息以及上面列出的所有监听器注入方法。

是的,您可以通过以下总体方法来实现这一点

  • 构建实现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
                    }
                }
            }
        }
    }
}
公共类SampleReporter实现IReporter{
@凌驾
公共void生成器报告(列表xmlSuites、列表suites、字符串输出目录){
适用于(ISuite:suites){
Map suiteResults=suite.getResults();
对于(ISuiteResult sr:suiteResults.values()){
ITestContext tc=sr.getTestContext();
设置failedResults=tc.getFailedTests().getAllResults();
对于(ITestResult failedResult:failedResults){
Throwable-Throwable=failedResult.getThrowable();
if(WebDriverException的可丢弃实例){
//将其归类为selenium异常
}
}
}
}
}
}
您现在可以决定使用以下选项之一连接此侦听器

  • 在测试类上使用
    @Listeners
    注释
  • 在套件xml文件中使用
    标记
  • 使用ServiceLoader方法
您可以参考我的博客文章来了解更多关于TestNG监听器的信息,以及上面列出的所有监听器注入方法