Ich habe Jenkins mit dem Xcode-Plugin konfiguriert, um Komponententests auszuführen, indem ich die Testbuild-Aktion zur benutzerdefinierten xcodebuild-Argumenteinstellung hinzufüge. Weitere Informationen darüber, wie Jenkins die Komponententests überhaupt mit Xcode 5 ausführen kann, finden Sie unter question.xcodebuild korrumpiert die Testergebnisausgabe, wenn die Ausgabe in die Datei umgeleitet wird
Jetzt, da ich es laufen lasse, scheint es Konsolenausgabe von NSLog-Anweisungen oder der endgültigen ** TEST SUCCEEDED **
Nachricht mit den Testergebnissen zu mischen und stolpert gelegentlich den Parser, der Komponententestergebnisse in das für Jenkins erforderliche JUnit-Format umwandelt.
Zum Beispiel zeigt die Jenkins Log-Ausgabe wie folgt aus:
Test Case '-[Redacted_Conversion_Tests testConvertTo_ShouldSetamount_WhenamountIsNotZero]' passed (** TEST SUCCEEDED **
0.000 seconds).
Test Case '-[Redacted_Conversion_Tests testConvertTo_ShouldSetamount_WhenamountIsZero]' started.
wenn es eigentlich sein sollte:
Test Case '-[Redacted_Conversion_Tests testConvertTo_ShouldSetamount_WhenamountIsNotZero]' passed (0.000 seconds).
Test Case '-[Redacted_Conversion_Tests testConvertTo_ShouldSetamount_WhenamountIsZero]' started.
** TEST SUCCEEDED **
Ich habe sah in diese weiter und zog Jenkins aus dem Bild heraus. Wenn ich den Befehl xcodebuild direkt an der Eingabeaufforderung ausfühle:
Die Ausgabe kommt immer in Ordnung, in Ordnung.
Wenn jedoch der Ausgang I Rohr an ein anderes Programm oder eine Umleitung zu einer Datei:
xcodebuild \
-workspace project.xcworkspace \
-scheme Tests \
-configuration Release \
-sdk iphonesimulator7.0 \
-destination "platform=iOS Simulator,name=iPhone Retina (4-inch),OS=latest" \
test > xcodebuild.out
cat xcodebuild.out
Der Ausgang ist out-of-order wie oben beschrieben.
Könnte das auf Pufferung oder Pufferung zurückzuführen sein, wenn nicht direkt in stdout geschrieben wird? Weiß jemand, warum dies geschieht und welche Abhilfe ich eventuell schaffen könnte, um es zu beheben?
Welche Parser haben Sie die Ausgabe junit Testergebnisse zu ändern verwenden, um? – kocodude
[OCUnit2JUnit] (https://github.com/ciryon/OCUnit2JUnit) – GBegen