我在 selenium 代码中使用 RetryAnalyzer,如果测试用例在第一次执行时失败,retryAnalyzer 将再次执行它。就我而言,如果第一次执行失败并且第二次执行通过,我想在范围报告中仅显示第二次执行的结果。但是我在报告中得到了两个测试用例结果。
下面是我的代码。
ExtentTest test;
int maxRetryCount = 1;
@AfterMethod
protected void afterMethod(ITestResult result) {
boolean firstTry = true;
if(maxRetryCount>0){
if (result.getStatus() == ITestResult.FAILURE && firstTry == true) {
firstTry = false;
} else if (result.getStatus() == ITestResult.SKIP) {
test.log(LogStatus.SKIP, "Test skipped " + result.getThrowable());
} else if (result.getStatus() == ITestResult.FAILURE && firstTry == false) {
test.log(LogStatus.ERROR, test.addScreenCapture(imgPath));
test.log(LogStatus.FAIL, result.getThrowable());
} else {
test.log(LogStatus.PASS, "Test passed");
}
}else{
if (result.getStatus() == ITestResult.FAILURE) {
test.log(LogStatus.ERROR, test.addScreenCapture(imgPath));
test.log(LogStatus.FAIL, result.getThrowable());
} else if (result.getStatus() == ITestResult.SKIP) {
test.log(LogStatus.SKIP, "Test skipped " + result.getThrowable());
} else {
test.log(LogStatus.PASS, "Test passed");
}
}
}
在这种情况下,如果测试用例在第一次执行失败,它显示该测试用例的状态为“未知”,并假设执行通过重试(第二次执行),通过百分比显示为 50%,而不是 100 %,因为它也计算未知数的百分比。
在以下循环条件下我应该做哪些更改,以便此测试用例的结果不会显示在报告中。
if (result.getStatus() == ITestResult.FAILURE && firstTry == true) { }
请建议。