2012-01-03 7 views
5

Utilizzo il selettore web Selenium, in Java con TestNG per eseguire una quantità X di casi di test.Riavvia automaticamente il test in TestNG/Selenium

Quello che vorrei è che ogni caso di test si riavvii automaticamente (dall'avvio o dal punto di errore), non appena fallisce.

So quadro TestNG ha il seguente metodo

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

ma non so come scoprire che TestCase era e poi come avrei riavviarlo.

risposta

9

volevo vedere un esempio con il codice effettivo in esso e trovato qui: Restarting Test immediately with TestNg

osservare come i test indicati verranno tutte eseguire nuovamente una volta appena il guasto si verifica.

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

Da testng.org

Ogni volta che i test non riescono in una suite, TestNG crea un file chiamato TestNG-failed.xml nella directory di output. Questo file XML contiene le informazioni necessarie per rieseguire solo questi metodi che non sono riusciti, consentendo di riprodurre rapidamente i guasti senza dover eseguire tutti i test.

Se si desidera rieseguire il test esattamente dopo l'errore, è necessario chiamare il metodo non riuscito. È possibile ottenere il nome del metodo dall'oggetto ITestResult.

Se si desidera rieseguire tutti i casi di test non riusciti insieme, è possibile fornire il file testng-failed.xml come input xml dopo la prima esecuzione.

+0

Mi piacerebbe eseguirli così come hanno fallito. Ok, quindi ho il test fallito e il suo nome, come dovrei riavviare il test? – MostWanted

+0

non importa .. ho capito .. [evviva] (http://testng.org/doc/documentation-main.html#running-testng-programmatically) – MostWanted

+0

@WaqasKhan ... Gentilmente posta la soluzione se ne hai uno . So che è ancora una vecchia domanda ... – Sighil