2012-01-03 26 views
5

Estoy usando Selenium webdriver, en Java con TestNG para ejecutar una cantidad X de casos de prueba.Reiniciar el caso de prueba fallido automáticamente en TestNG/Selenium

Lo que me gustaría es que cualquier caso de prueba se reinicie automáticamente (ya sea desde el inicio o desde el punto de falla), tan pronto como falle.

Sé marco TestNG tiene el siguiente método

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

pero no sé cómo averiguar lo que caso_prueba que era y entonces, ¿cómo iba yo a reiniciarlo.

Respuesta

9

que quería ver un ejemplo con código real en ella y lo encontraron aquí: Restarting Test immediately with TestNg

observar cómo se volvieron a ejecutar una vez tan pronto como ocurre el fracaso de las siguientes pruebas cada uno.

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

De testng.org

Cada vez pruebas fallan en una suite, TestNG crea un archivo llamado TestNG-failed.xml en el directorio de salida. Este archivo XML contiene la información necesaria para volver a ejecutar solo estos métodos que fallaron, lo que le permite reproducir rápidamente los fallos sin tener que ejecutar la totalidad de sus pruebas.

Si desea volver a ejecutar la prueba exactamente después de la falla, debe llamar al método que falló. Puede obtener el nombre de ese método del objeto ITestResult.

Si desea volver a ejecutar todos los casos de prueba fallidos, puede dar el testng-failed.xml como entrada xml después de la primera ejecución.

+0

Me gustaría ejecutarlos así como fallaron. Ok, entonces tengo la prueba fallida y su nombre, ¿cómo reiniciaré la prueba? – MostWanted

+0

no importa ... lo tengo .. [aplausos] (http://testng.org/doc/documentation-main.html#running-testng-programmatically) – MostWanted

+0

@WaqasKhan ... Favor de publicar la solución si tiene una . Sé que todavía es una vieja pregunta ... – Sighil

Cuestiones relacionadas