Spec. dla JUnit XML Output [zamknięte]

84

Gdzie mogę znaleźć specyfikację danych wyjściowych XML JUnit. Moim celem jest napisanie raportującego XML UnitTest ++, który wygenerowałby dane wyjściowe podobne do JUnit.

Zobacz: „ Nie można zmusić hudsona do przeanalizowania wyniku XML wyjściowego testu JUnit ” i „ Hudson, C ++ i UnitTest ++

Gilad Naor
źródło
Czy mógłbyś podać więcej informacji, które wyjście masz na myśli? Prawdopodobnie przykład lub instrukcja jak uzyskać taki wynik? Dzięki!
guerda
Czy to dla JUnit 4.x? Którego TestRunnera używasz?
guerda
gdybyś miał czas napisać raport XML dla UnitTest ++, byłbym zainteresowany, gdybyś mógł się nim podzielić.
Vincent
21
Jestem zaskoczony, słysząc, że poszukiwanie specyfikacji lub standardu „ma tendencję do przyciągania upartych odpowiedzi ...”. Rozumiem, dlaczego dyskusja na temat specyfikacji lub normy stwarzałaby takie problemy, ale sama specyfikacja jest po prostu konkretnym faktem. Albo istnieje, albo nie, a odpowiadający albo wie, gdzie istnieje, albo nie. Biorąc pod uwagę znaczenie specyfikacji i standardów pomagających nowoczesnemu oprogramowaniu - najbardziej złożonym artefaktom, jakie ludzie kiedykolwiek zbudowali - we współdziałaniu, myślę, że wytyczne SO powinny zostać zmienione, aby umożliwić tego typu pytania.
Arthur

Odpowiedzi:

50

Możesz znaleźć XSD na podstawie kodu w Apache Ant 1.8.2 na https://github.com/windyroad/JUnit-Schema

Tom Howard
źródło
4
Zobacz mój komentarz na windyroad.zendesk.com/entries/ ... brakujące elementy w tym pliku XSD.
Reinderien
przynosząc komentarz na miejscu Reinderienokazało się, że są to wydaje się, że brakuje: /testsuites/testsuite/@skipped, /testsuites/testsuite/testcase/skipped, /testsuites/testsuite/error, /testsuites/testsuite/failure, /testsuites/testsuite/system-err, po nadczytany z XMLJUnitResultFormatter.java, XMLResultAggregator.java, XMLConstants.javaw svn.apache.org/repos/asf/ant/core/trunk/src/main/org/ apache /…
n611x007
1
@naxa, uważam, że te węzły zostały dodane po Apache Ant 1.8.2. Pamiętam, że byłem wtedy bardzo dokładny (na początku 2011 roku). Właśnie przeniosłem XSD do github i zmieniłem licencję na licencję Apache w wersji 2.0. Zapraszam do rozwidlenia i aktualizacji.
Tom Howard,
12

Dane wyjściowe XML nie są generowane przez JUnit (przynajmniej nie przez junit.jar), ale przez zadanie junit ant.
Odpowiednia klasa to org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter .

Laurent Doré
źródło
2
To jest świetne. Chciałbym zobaczyć prawdziwą dokumentację lub prawdziwą specyfikację, ale poza tym nie ma nic bardziej autorytatywnego niż źródło.
Greg Price,
Interpretacja tego źródła wymaga również przeczytania svn.apache.org/repos/asf/ant/core/trunk/src/main/org/apache/… .
Reinderien
Przeczytaj również svn.apache.org/repos/asf/ant/core/trunk/src/main/org/apache/…, ponieważ jest to źródło pakietu i atrybutów identyfikatora.
Reinderien
8

Znalazłem nieformalną specyfikację na http://ant.1045680.n5.nabble.com/schema-for-junit-xml-output-td1375274.html

HD.
źródło
1
tak, wylądowałem na tej stronie, ale nie jest kompletna. rozszerzając RUnit (testy jednostkowe dla R) tak, aby generował dane wyjściowe kompatybilne z Hudsonem, skończyło się na stworzeniu jednego „zestawu testowego”, tam jest lista „zestawu testowego”, a we wszystkich „przypadkach testowych”. Nadal nie wiem, jak oznaczyć nieaktywne testy.
mariotomo
6

Jak wspominali inni, XML jest obsługiwany przez ANT, a nie jUnit

Oto najlepsza specyfikacja, jaką widziałem. Z tego postu

przypadku nelson
źródło
-5

Mogę podać tylko ogólne informacje.

W kodzie źródłowym JUnit znajdziesz swoje informacje. Jeśli podasz więcej informacji, pomogę Ci dalej. Moja osobista wskazówka dotycząca znalezienia specyfikacji będzie następująca junit.framework.TestResult.

Powodzenia!

guerda
źródło
2
JUnit nic nie wie o tym formacie. Jest generowany przez mrówkę. To trochę zabawny interes.
Tom Anderson,