Перезапустить неудачный тестовый случай автоматически в TestNG / Selenium - PullRequest
7 голосов
/ 03 января 2012

Я использую веб-драйвер Selenium в Java с TestNG для запуска X тестовых наборов.

Мне бы хотелось, чтобы любой тестовый случай автоматически перезапускался (либо с запуска, либо с точки сбоя).), как только он потерпит неудачу.

Я знаю, что у среды TestNG есть следующий метод

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

, но я не знаю, как узнать, какой это был тестовый пример, а затем, как мне перезапуститьэто.

Ответы [ 2 ]

9 голосов
/ 17 декабря 2013

Я хотел увидеть пример с реальным кодом в нем и нашел его здесь: Перезапуск теста немедленно с TestNg

Посмотрите, как каждый из приведенных ниже тестов будет перезапущен один раз, как только произойдет сбой.

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

    }
}
5 голосов
/ 04 января 2012

с testng.org

Каждый раз, когда тесты завершаются неудачно в наборе, TestNG создает файл с именем testng-failed.xml в выходном каталоге. Этот XML-файл содержит необходимую информацию для повторного запуска только тех методов, которые не были выполнены, что позволяет быстро воспроизвести ошибки, не выполняя все тесты.

Если вы хотите перезапустить тест сразу после сбоя, вам нужно вызвать метод, который не прошел. Вы можете получить это имя метода из объекта ITestResult.

Если вы хотите перезапустить все неудачные тестовые примеры вместе, то вы можете предоставить testng-failed.xml в качестве входного xml после первого выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...