我有一个RetryAnalyzerRetryListener。在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/

10-12 00:08
查看更多