一尘不染

在TestNG / Selenium中自动重启失败的测试用例

selenium

我在带有TestNG的Java中使用Selenium webdriver,来运行X个测试用例。

我想要的是任何测试用例一旦失败就自动重新启动(从启动或从故障点开始)。

我知道TestNG框架具有以下方法

@Override
  public void onTestFailure(ITestResult tr) {
    log("F");
  }

但是我不知道如何找出它是哪个测试用例,然后如何重新启动它。


阅读 342

收藏
2020-06-26

共1个答案

一尘不染

我想查看其中包含实际代码的示例,并在此处找到它:
使用TestNg立即重新启动Test

观察一下,一旦发生故障,下面的测试将如何重新运行一次。

import org.testng.Assert;
import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;
import org.testng.annotations.Test;

public class Retry implements IRetryAnalyzer {
    private int retryCount = 0;
    private int maxRetryCount = 1;

    public boolean retry(ITestResult result) {

        if (retryCount < maxRetryCount) {
            retryCount++;
            return true;
        }
        return false;
    }

    @Test(retryAnalyzer = Retry.class)
    public void testGenX() {
        Assert.assertEquals("james", "JamesFail"); // ListenerTest fails
    }

    @Test(retryAnalyzer = Retry.class)
    public void testGenY() {
        Assert.assertEquals("hello", "World"); // ListenerTest fails

    }
}
2020-06-26