2012-01-30 18 views
8

Chcę utworzyć raporty z testów wygenerowanych przez JUnit/TestNG PROGRAMMATYCZNIE. To wyklucza ANT. Moją główną troską jest generowanie plików XML, które są tworzone przez Junit podczas wykonywania przypadków testowych. Czytałem, że RunListener może mi pomóc w osiągnięciu tego, ale nie udało mi się dowiedzieć, jak? Używam Selenium do tworzenia moich przypadków testowych.Generowanie plików XML używanych przez JUnit Reports

Jak wygenerować pliki XML utworzone przez JUnit?

+0

użyć XML JUnit [Format] (http: // help. catchsoftware.com/display/ET/JUnit+Format) – Manu

Odpowiedz

9

JUnit nie generuje raportów XML. Nie ma standardowego formatu wyjściowego XML dla JUnit.

Inne narzędzia generują XML, na przykład Ant/Maven. Pierwszą rzeczą, którą musisz zrobić, to zdecydować, która forma pliku XML chcesz, jak to, co chcesz zrobić z plikami po ich utworzeniu.

Rzeczywiście, twoje ograniczenie programowe nie wyklucza ANT. Możesz wywołać mrówkę programowo (patrz Invoke ant from java, then return to java after ant termination). Byłby to najprawdopodobniej najłatwiejszy sposób generowania plików, które są zgodne z ant.

Jeśli chcesz tworzyć własne pliki XML, można utworzyć klasę, która rozciąga RunListener, a następnie uruchomić swoje testy powołując JUnitCore#run() lub podobny.

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

Twój RunListener wyemituje tylko odpowiedni XML. Jest to dość łatwe do zrozumienia: zastąp metody testRunStarted() itp. I zapisz XML. Aby dowiedzieć się, jak to działa, zobacz TextListener, który robi to samo, ale tekst.

+0

Paczka TextListener została usunięta. Czy możesz udostępnić inny link? – anon

+0

Zaktualizowałem link. –

0

Pytałeś prawie taka sama here Jeśli spojrzeć na doc TestNG można użyć:

Interfejs org.testng.IReporter który ma tylko jedną metodę: publicznych generateReport (wykaz apartamentów nieważne, String outputDirectory) Ta metoda zostanie wywołana przez TestNG, kiedy wszystkie pakiety zostały uruchomione i możesz sprawdzić jej parametry, aby uzyskać dostęp do wszystkich informacji dotyczących właśnie ukończonego cyklu.

4

pliki XML są generowane przez ant-JUnit, a możemy to zrobić przez program, kod będzie wyglądał następny:

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

Które pliki JAR zostały użyte? Czy możesz się podzielić? – anon

Powiązane problemy