JUnit XML-Formatspezifikation, die Hudson unterstützt
Ich habe Hudson als continuous integration server und ich wollen, verwenden Sie die option 'Publish JUnit test result report". Aber ich bin nicht xUnit-tools für die Prüfung, anstatt, dass ich über die shell-Skripte, die tests ausführen und die Ergebnisse zurückgeben, im einfachen format. Ich bin am überlegen, ein Skript, das verwandelt sich diese Ergebnisse auf den JUnit-format. Also ich bin interessant, wie sich die JUnit-Datei Aussehen muss?
Kommentar zu dem Problem
Jeder Grund, nicht mit JUnit? Diese tests können automatisiert werden, in eine Vielzahl von Moden, die über eine Vielzahl von tools, cmd, UI, etc...
@AaronMcIver: Shell-Skripte sind ziemlich gut bei der Ausführung von tests auf (Sprache, die Java nicht). Wie würden Sie verwenden JUnit?
@BenVoigt ich hatte zunächst angenommen, dass der OP hatte Java beteiligt und war auf der Suche nach bypass JUnit als Test-harness. Dies ist wahrscheinlich nicht der Fall ist nach der überprüfung der Frage. Es scheint, dass code.google.com/p/shell2junit kann einen gewissen nutzen für die OP nach einen zweiten Blick.
Entlang der Linien von shell2unit hier ist eine JAXB-Klasse, die ich erstellt, Parsen/Ausgabe JUnit-XML-Code: gist.github.com/agentgt/8583649
InformationsquelleAutor der Frage krvladislav | 2011-02-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe eine ähnliche Sache vor ein paar Monaten, und es stellte sich heraus das einfache format war genug für Hudson zu akzeptieren, es als ein test-Protokoll:
Diese Frage Antworten mit mehr details: Spec. für JUnit-XML-Ausgabe
InformationsquelleAutor der Antwort Anders Lindahl
Ich habe mir einfach die junit-4.xsd, die von anderen verlinkt und verwendet ein tool namens XMLSpear konvertieren des Schemas auf eine leere XML-Datei mit den Optionen unten gezeigt. Dies ist der (leicht bereinigt) Ergebnis:
Einige dieser Elemente können mehrfach vorkommen:
testsuites
element, denn das ist, wie XML funktioniert, aber es können mehreretestsuite
Elemente innerhalb dertestsuites
element.properties
element kann mehrereproperty
Kinder.testsuite
element kann mehreretestcase
Kinder.testcase
element kann mehrereerror
,failure
,system-out
odersystem-err
Kinder.InformationsquelleAutor der Antwort Todd Mazierski
Den top Antwort der Frage Anders Lindahl bezieht sich auf eine xsd-Datei.
Persönlich fand ich dieser xsd-Datei auch sehr nützlich (ich erinnere mich nicht, wie ich fand). Es sieht ein bisschen weniger einschüchternd, und so weit wie ich es benutzt habe, alle Elemente und Attribute, die scheinen erkannt zu werden, die von Jenkins (v1.451)Eine Sache, obwohl: beim hinzufügen von mehreren
<failure ...
Elemente, nur eines wurde zurückbehalten in Jenkins. Beim erstellen der xml-Datei, die ich nun verketten Sie alle Fehler in einem.Update 2016-11 Der link ist nun gebrochen. Eine bessere alternative ist diese Seite aus cubic.org: JUnit-XML-Berichte-Datei-format, wo eine schöne Anstrengung unternommen wurde, um eine sinnvolle dokumentiert Beispiel. Beispiel-und xsd-unten kopiert, aber Ihre Seite sieht waay schöner.
Beispiel JUnit-XML-Datei
JUnit-XSD-Datei
InformationsquelleAutor der Antwort parvus
Konnte ich nicht finden gute Informationen auf dieser, so habe ich einige Versuch und Irrtum. Die folgenden Attribute und Felder (und nur diese) erkannt werden, die von Jenkins (v1.585).
(Ich begann mit diese Beispiel XML-Dokument und arbeitete nach hinten.)
InformationsquelleAutor der Antwort Ian
Es gibt mehrere schemas für "JUnit" und "xUnit" - Ergebnisse.
model/xsd
)Bitte beachten Sie, dass es mehrere Versionen des Schemas in der Nutzung von Jenkins xunit-plugin (die aktuelle neuste version ist
junit-10.xsd
fügt support für Erlang/OTP-Junit-format).Einige testing-frameworks sowie "xUnit"-Stil reporting-plugins verwenden auch Ihre eigene "geheime Soße" zu generieren "xUnit"-Berichte können nicht mit einem bestimmten schema (bitte Lesen: Sie versuchen, aber die tools nicht überprüfen, Sie gegen eines schema). Python unittests in Jenkins? gibt einen schnellen Vergleich von mehreren dieser Bibliotheken und leichte Unterschiede zwischen der xml-Berichte erzeugt.
InformationsquelleAutor der Antwort dnozay
Grundstruktur
Hier ist ein Beispiel für eine JUnit-output-Datei und zeigt ein überspringen und scheiterte Ergebnis als auch ein einzelnes Ergebnis bestanden.
Unten ist die dokumentierte Struktur eines typischen JUnit-XML-Bericht. Beachten Sie, dass ein Bericht kann enthalten 1 oder mehrere test-suite. Jeder test-suite verfügt über eine Reihe von Eigenschaften (recording-Umgebung Informationen). Jeder test-suite enthält auch 1 oder mehrere test-Fall und jeder Testfall enthält entweder eine übersprungen, Ausfall oder Fehler-Knoten, wenn der test nicht bestanden. Wenn der Testfall bestanden hat, dann wird es nicht enthalten keine Knoten. Für mehr details, welche Attribute gelten für jeden Knoten, konsultieren Sie bitte den folgenden Abschnitt "Schema".
InformationsquelleAutor der Antwort Nayana Adassuriya
Gute Antworten hier auf die Verwendung von python: (es gibt viele Möglichkeiten, es zu tun)
Python unittests in Jenkins?
IMHO der beste Weg ist schreiben python-unittest-tests und installieren pytest (so etwas wie "yum install pytest') py.testen installiert.
Dann tests wie dieser: 'py.test --junitxml results.xml test.py'. Sie können jeden unittest python-Skript und bekommen jUnit-xml-Ergebnisse.
https://docs.python.org/2.7/library/unittest.html
In den jenkins build-Konfiguration Post-build-Aktionen Hinzufügen "Publish JUnit test result report" - Aktion mit result.xml und jeder weitere test Ergebnis-Dateien, die Sie produzieren.
InformationsquelleAutor der Antwort gaoithe
Habe ich beschlossen, zu veröffentlichen eine neue Antwort, weil einige bereits vorhandene Antworten sind veraltet oder unvollständig.
Zunächst: es gibt nichts wie
JUnit XML Format Specification
einfach, weil JUnit nicht produzieren jede Art von XML-oder HTML-Bericht.Den XML-Bericht generation kommt selbst aus der Ant-JUnit-task/Maven-Surefire-Plugin/Gradle (je nachdem, was Sie verwenden für die Ausführung von tests). Das XML-report-format wurde erstmals von Ant und später angepasst durch Maven (und Gradle).
Wenn jemand braucht einfach eine offizielle XML-format dann:
Hoffe, es hilft jemand.
InformationsquelleAutor der Antwort G. Demecki