几天前我第一次开始使用TESTNG。
我使用IRetryAnalyzer接口实现了一个重试分析器,该接口重试失败的测试方法最多3次。
我有一个名为retryInvoker()的测试方法,该方法失败两次并且第三次成功。
TestNG报告的方式是3次单独的测试运行,其中2次失败,1次成功,实际上是正确的。 虽然我只希望将其捕获为单个测试运行,但最终成功(如果它在最大允许重试结束之前执行,在这种情况下为3)。或者即使它在3次重试后没有成功,我希望将其报告为单次测试运行,而不是4次单独的测试运行,所有这些都失败了。
这方面的任何线索?
答案 0 :(得分:0)
您可以尝试使用此SO answer中建议的方法,如果在失败或通过的测试中找到相同的方法,则从测试上下文中删除重复项:
@Overrride
public void onFinish(ITestContext context) {
Iterator<ITestResult> failedTestCases = context.getFailedTests().getAllResults().iterator();
while (failedTestCases.hasNext()) {
System.out.println("failedTestCases");
ITestResult failedTestCase = failedTestCases.next();
ITestNGMethod method = failedTestCase.getMethod();
if (context.getFailedTests().getResults(method).size() > 1) {
System.out.println("failed test case remove as dup:" + failedTestCase.getTestClass().toString());
failedTestCases.remove();
} else {
if (context.getPassedTests().getResults(method).size() > 0) {
System.out.println(
"failed test case remove as pass retry:" + failedTestCase.getTestClass().toString());
failedTestCases.remove();
}
}
}
}