我有一个RetryAnalyzer
和RetryListener
。在RetryListener
onTestFailure
中,我检查测试是否可重试,如果是,则将结果设置为SUCCESS。我也这样做,在这种方法中testResult.getTestContext().getFailedMethods.removeResult(testResult)
。
我再次在侦听器的onFinish
方法中删除失败的结果(如果条件有效)。
现在我遇到的问题是,我将每个测试类分为几组。一门测试课做写,一门测试课做读。因此,READS组取决于WRITES。
如果一个测试用例第一次尝试失败并成功重试,则尽管在onTestFailure
方法中删除了失败的结果,但依赖组中的所有测试用例都被跳过。
如果测试用例成功重试,是否可以运行依赖方法?如果测试用例在所有尝试中均失败,我的行为就可以了,所以我不想在每个依赖方法上添加"alwaysRun=true"
。
最佳答案
重试后,您应该从“失败的测试”中删除该测试。并且请确保删除ITestResult对象。 (即结果,但不是result.getMethod())
@Override
public boolean retry(ITestResult result) {
if (currentCount < maxRetryCount) {
result.getTestContext().getFailedTests().removeResult(result);
currentCount++;
return true;
}
return false;
}
关于java - TestNG:RetryAnalyzer,如果重试测试成功,则跳过相关组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31684330/