2012-01-30 21 views
8

Desidero creare rapporti di test generati da JUnit/TestNG PROGRAMMATICAMENTE. Quindi, questo esclude ANT. La mia principale preoccupazione è generare file XML creati da Junit durante l'esecuzione di test case. Ho letto che RunListener potrebbe aiutarmi a farlo, ma non sono riuscito a capire come? Sto usando Selenium per creare i miei casi di test.Genera file XML utilizzati da JUnit Reports

Come posso generare file XML creati da JUnit?

+0

utilizzare l'XML JUnit [formato] (http: // aiuto. catchsoftware.com/display/ET/JUnit+Format) – Manu

risposta

9

JUnit non genera report XML. Non esiste un formato di output XML standard per JUnit.

Altri strumenti generano XML, come Ant/Maven. Quindi la prima cosa che devi fare è decidere quale forma di file XML vuoi, come in quello che vuoi fare con i file una volta che li hai creati.

E, in realtà, la restrizione di programmazione non esclude ANT. È possibile richiamare formica al livello di programmazione (vedere Invoke ant from java, then return to java after ant termination). Questo probabilmente sarebbe il modo più semplice per generare file che sono ant-compatibili.

Se si desidera creare i propri file XML, è possibile creare una classe che estende RunListener e quindi eseguire i test richiamando JUnitCore#run() o simile.

public void main(String... args) { 
    JUnitCore core= new JUnitCore(); 
    core.addListener(new RingingListener()); 
    core.run(MyTestClass.class); 
} 

Il proprio RunListener emetterebbe semplicemente l'XML appropriato. È abbastanza facile da capire: scavalca i metodi testRunStarted() ecc. E scrivi l'XML. Per un esempio di come funziona, vedere TextListener, che fa la stessa cosa, ma per il testo.

+0

TextListener paga è stato rimosso. Puoi condividere qualche altro link? – anon

+0

Ho aggiornato il collegamento. –

0

ti ha chiesto quasi la stessa here Se si guarda al doc TestNG è possibile utilizzare:

L'interfaccia org.testng.IReporter che ha un solo metodo: public void generateReport (Lista suite, String outputDirectory) Questo metodo verrà invocato da TestNG quando tutte le suite sono state eseguite e sarà possibile esaminarne i parametri per accedere a tutte le informazioni sulla corsa appena completata.

4

file XML sono generati da ant-JUnit, e possiamo farlo dal programma, il codice sarà simile prossimo:

Project project = new Project(); 
JUnitTask task = new JUnitTask(); 
project.setProperty("java.io.tmpdir",String); //set temporary directory 
task.setProject(project); 
JUnitTask.SummaryAttribute sa = new JUnitTask.SummaryAttribute(); 
sa.setValue("withOutAndErr"); 
task.setFork(false); 
task.setPrintsummary(sa); 
FormatterElement formater = new FormatterElement();   
FormatterElement.TypeAttribute type = new FormatterElement.TypeAttribute(); 
type.setValue("xml"); 
formater.setType(type); 
task.addFormatter(formater); 
JUnitTest test = new JUnitTest(String);// set Test.class.getname()   
test.setTodir(File); // set Location for your report 
task.addTest(test);   
task.execute(); 
+1

Quali file jar sono stati utilizzati? Puoi condividere per favore? – anon