繁体   English   中英

如果测试用例在 testNG 中失败,如何运行 class

[英]How to run class if test case failed in testNG

我遇到了一个问题,我有一个带有多个测试用例的 class,并且我正在使用带有 java 和 selenium 的测试 ng。 如果测试用例失败,是否有可能 testNG 将再次运行整个 class? 不是测试。 因为页面之间有优先级和导航。 有没有办法运行再次失败的整个 class ? 我只是看到重新运行测试,它对我没用。 问候

如果我理解正确,这就是您需要的解决方案

import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;

public class Retry implements IRetryAnalyzer {

    private int count = 0;
    private static int maxTry = 3;

    public boolean retry(ITestResult iTestResult) {
        if (!iTestResult.isSuccess()) {
            if (count < maxTry) {
                count++;
                iTestResult.setStatus(ITestResult.SUCCESS);
                return true;
            } else {
                iTestResult.setStatus(ITestResult.FAILURE);
            }
        } else {
            iTestResult.setStatus(ITestResult.FAILURE);
        }
        return false;
    }
}

那么你所有的测试方法应该是这样的:

 @Test(retryAnalyzer=Retry.class)

你应该添加 BeforeSuite

  @BeforeSuite(alwaysRun = true)
    public void beforeSuite(ITestContext context) {
        for (ITestNGMethod method : context.getAllTestMethods()) {
            method.setRetryAnalyzerClass(Retry.class);
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM