Wie kann ich Xcode 5 dazu bringen, iOS-Komponententests auf einem Jenkins-Slave auszuführen?

Wir haben Jenkins mit dem Xcode-Plugin verwendet, um die kontinuierliche Integration unserer iOS-Anwendungen, einschließlich der automatischen Ausführung und Berichterstellung für die Komponententests, durchzuführen. Dies funktionierte gut mit Jenkins auf einem Linux-Computer und einem Mac-Slave, auf dem Xcode 4.6.3 ausgeführt wird.

Jetzt möchten wir das Setup auf Xcode 5 aktualisieren, um iOS 7 zu unterstützen, und sind auf die folgenden Probleme gestoßen.

Erstens würden die Unit-Tests überhaupt nicht ausgeführt, da wir das RunUnitTests-Skript von Xcode 4 verwenden, das in Xcode 5 nicht mehr unterstützt wird. Wie von Xcode empfohlen, habe ich den Arbeitsbereich mit einem entsprechenden Schema für die Unit eingerichtet Testziel.

Ich habe dann den Xcode-Schritt des Jenkins-Jobs mit benutzerdefinierten xcodebuild-Argumenten konfiguriert, die auf gesetzt sindtest -destination platform=${DESTINATION_PLATFORM},name=${DESTINATION_NAME},OS=${DESTINATION_OS} um es zu bekommen, um die Unit-Tests auszuführen.

Wenn ich die xcodebuild-Befehlszeile ausführe, die das Xcode-Plugin für Jenkins im Terminal auf meinem eigenen Computer ausführt, werden die Komponententests ausgeführt. Wenn der Jenkins-Job ausgeführt wird, schlägt er entweder fehl oder hängt, wenn versucht wird, die Komponententests auszuführen.

Ich vermute, dies liegt daran, dass mit Xcode 5 und der Testbuildaction anstelle des RunUnitTests-Skripts Unit-Tests jetzt im iOS-Simulator ausgeführt werden, für die eine interaktive Sitzung erforderlich ist, und der Jenkins-Slave-Prozess über SSH vom Jenkins-Master (Linux) ausgeführt wird. Wenn ich auf dem Slave-Computer mit dem Konto angemeldet bin, das Jenkins für SSH verwendet, kann ich sehen, dass der iOS-Simulator gestartet wird, wenn die Komponententests ausgeführt werden sollen, die Tests jedoch nicht ausgeführt werden und der Job hängt. Wenn ich nicht bei der Slave-Maschine angemeldet bin, kann der Jenkins-Job die Komponententests nicht ausführen.

Gibt es eine Möglichkeit, die iOS-Komponententests auf einem Jenkins-Slave über SSH auszuführen, und wenn nicht, Vorschläge, wie die Ausführung der Komponententests weiter automatisiert werden kann, wenn das Projekt mit Xcode 5 erstellt werden muss?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage