2009-11-04 14 views
17

Ho una suite TestNG con una grande quantità di metodi. Eseguo questa suite usando il wrapper costruito sopra il runner TestNG. Tutti i test nella suite falliscono tranne uno. Cosa dovrei scrivere in testng.xml per eseguire solo quel test fallito?Come eseguire un test dalla suite TestNG di grandi dimensioni usando testng.xml?

Soluzione ovvia è assegnare nomi di gruppo univoci a tutti i metodi e quindi specificare il nome in testng.xml. Questo può funzionare in caso di 2-3 metodi, ma diventa più difficile man mano che aumenta il numero di test.

risposta

1

Esistono diversi metodi per eseguire questa operazione.

Si sta utilizzando Eclipse per lo sviluppo? C'è un plugin Eclipse per TestNG e penso che sarebbe di gran lunga il modo più semplice per eseguire test specifici. Il plugin consente di eseguire suite, gruppi, classi o metodi di test disponibili.

In caso contrario, credo che sia possibile impostare un task ant per avviare il test (http://testng.org/doc/ant.html) e utilizzare attributi come "classfilesetref" per fornire un elenco di test da eseguire. È possibile specificare il test in un file separato in modo da non dover aggiornare il build.xml ogni volta che si esegue il test.

Per l'installazione di test Plugin.Just Seguire i passaggi: 1-Andare al menu "Guida" in Eclipse. 2-Selezionare "Install New Software" " 3-Aggiungi" http://beust.com/eclipse."

Funziona in caso di errore specificato penso che non hai il plugin installato all'interno del Eclippse IDE

+0

La prima opzione non è disponibile - Sto usando il wrapper, costruito sopra il runner TestNG per avviare i test.Eclipse non cattura i risultati dei test, eseguiti dal mio wrapper. Grazie per la seconda opzione - ci proverò. –

4

Dopo . ogni esecuzione, TestNG crea un archiviato chiamato TestNG-failed.xml che contiene solo i test che sono falliti Basta richiamare ancora una volta TestNG su quel file:

java org.testng.TestNG testng.xml java org.testng.TestNG TestNG -failed.xml

(sostituisci org .testng.TestNG con il tuo proprio runner dal momento che sembra che tu ne usi uno personalizzato).

+0

Non posso credere, Beust stesso risponde risposta !! –

1

È inoltre possibile creare il proprio ITestListener (poiché in ogni caso si dispone del proprio involucro) che tiene traccia degli errori e quindi genera il proprio file di suite di errori contenente solo il test non riuscito. Gli hook listener/intercettori di TestNG sono abbastanza buoni. Al lavoro abbiamo esteso TestNG che li utilizzano diversi modi:

  • cattura/riproduzione dei dati generati sets
  • risultato la registrazione a un database
  • personalizzato di uscita di test (tronchi)
  • meta-dati, come ID , descrizioni, per i set di dati forniti da una @DataProvider
  • controlli runtime dell'Ambiente restrizioni dipendenti da casi di test
6

prova questo:

<classes> 
    <class name="test.IndividualMethodsTest"> 
     <methods> 
     <exclude name="testMethod" /> 
     </methods> 
    </class> 
    </classes> 
+1

Oppure per eseguire solo quello –

15

Invece di exclude, è possibile utilizzare include. Sarà esattamente quello che vuoi. Solo questo test verrà eseguito.

<classes> 
    <class name="test.IndividualMethodsTest"> 
     <methods> 
     <include name="testMethod" /> 
     </methods> 
    </class> 
    </classes> 
Problemi correlati