2013-05-14 13 views
17

Ich habe in diesem Bereich ein wenig gegoogelt und viele Diskussionen darüber geführt, Jenkins das XML-Ausgabeformat von boost.test zu erklären, aber keine kanonische Referenz.Verwendung von Jenkins mit boost.test Komponententests

Einige Leute sagen, dass wir einfach XLST verwenden müssen, um das XML-Format zu konvertieren, andere schlagen vor, dass das XML einige Hacker vorher benötigt (Anyone have an XSL to convert Boost.Test XML logs to a presentable format?). Einige schlagen vor, die xUnit Plugin can nativ boost.test XML-Format, andere state it can't

Da meine Suchergebnisse umspannen 5 Jahre verstehen, ich bin bewusst, dass die Dinge geändert haben könnte. Ich suche also eine aktuelle Antwort über die beste Möglichkeit, Jenkins zu verwenden, um Boost-Unit-Tests auszuführen und zu bewerten.

+1

Wie gesagt, up-to-date ist der Schlüssel hier ... bitte nicht automatisch klicken Sie auf die Schaltfläche "Duplizieren" für eine 2-jährige Frage, es sei denn, Sie sind sicher, dass immer noch aktuelle Informationen sind. –

+0

Haben Sie _tried_ ob das xUnit Plugin es parsen kann? Hast du _tried_ versucht, die xslts aus der verknüpften Frage zu verwenden? –

+0

Es wäre kaum eine Nachricht, wenn ein alter Weg immer noch funktioniert, das heißt nicht, dass es der beste Weg ist. –

Antwort

24

xUnit Parsing funktioniert für mich mit Jenkins 1.498, xUnit 1.52, Boost 1.42. Ich habe ein neues Projekt, das boost 1.53 verwendet und das XML-Ausgabeformat scheint für mein Auge, das alles für Menschen anfällig ist, dasselbe zu sein, aber da ich in Jenkins noch keine Komponententests eingerichtet habe, bin ich nicht 100 % Vergewissern Sie sich, dass die Ausgabe kompatibel ist.

Wie in der xUnit plugin comments empfohlen, ich bin mit dem Boost-Testprogramm läuft:

run_test --log_format=XML --log_sink=results.xml --log_level=all --report_level=no 

Ich habe meine Post-Build xUnit Schritt results.xml mit dem BoostTest-1.x-Format zu analysieren konfiguriert.

Wenn Sie immer noch Probleme haben, können Sie Ihre Frage möglicherweise mit weiteren Details zu Ihren Versionen und dem Generieren der Testausgabe aktualisieren.

+0

Brilliant - es war alles auf die Parameter zum Test .EXE übergeben. Funktioniert wunderbar. –

+0

sollten Sie auch '--result_code = no' hinzufügen. siehe @ Antony's Antwort –

+0

Dies ist nicht mehr eine gute Antwort, hat nicht mehr funktioniert, als ich gerade getestet habe.Gehen Sie einfach mit "--log_format = JUNIT", das jetzt unterstützt wird. – Freitags

2
run_test --log_format=XML --log_sink=results.xml --log_level=all --report_level=no --result_code=no 

Ich habe einen Parameter Dave Bacher Antwort hinzugefügt, weil anscheinend Test-Erhöhung wurde einen von Null verschiedenen Exit-Code unter Verwendung einen Testfehler anzuzeigen, aber Jenkins dies als grund Versagen interpretiert und damit ohne die Verarbeitung zu stoppen die Testergebnisse.

+0

Sie sollten einen Kommentar zu Dave Bacher's Antwort schreiben, anstatt eine neue Antwort zu erstellen. –

+1

Das wäre auch meine Präferenz, wenn ich die entsprechenden Kommentare hätte. – Antony

0

Ok, normalerweise funktioniert es mit diesen Optionen. Wenn Sie es jedoch in großen Projekten verwenden und die XML-Datei zu groß wird, funktioniert das XUnit-Plugin nicht mehr. Also musste ich die log_level zu test_suite ändern. Nur die Fehler werden protokolliert, die erfolgreichen Prüfungen werden nicht protokolliert.