如何根据故障类型对TestNG故障进行分类?
答
是的,您可以按照下面的整体方法来做到这一点。
- 构建一个实现了TestNG的接口
org.testng.IReporter
- 在这个界面implementatation其中,你会得到
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的听众和听者的所有上述列举的方式注射。