Ich habe eine iOS-Anwendung und möchte sie fortlaufend integrieren. Die Strategie, die ich dazu verwende, versucht, die Tests über die Befehlszeile auszuführen.
Ich versuche es mit dem folgenden Skript:
%Vor%SomeTest.js ist eine einfache Javascript-Datei, die ich in Instrumentation in Xcode ausführen kann und es funktioniert. Ich erstelle meine Anwendung mit:
%Vor%und das erzeugt die MyApp.app. Ich kann die Anwendung von Xcode im Simulator ausführen, aber wenn ich versuche, an den Instrumenten zu laufen, bekomme ich eine Box, die sagt, dass es einen unbekannten Fehler gibt und in der Kommandozeile:
%Vor%Kann mir jemand Hilfe / Anregungen geben, was passiert und wie kann ich das beheben?
Außerdem öffnet es immer den iPad Simulator? Kann ich es schaffen, dass es jeden beliebigen Simulator öffnet?
Ich bekam den gleichen Fehler und zog mir beinahe die Haare aus, um es zu lösen. Die Fehlermeldungen sind absolut nicht hilfreich.
Am Ende war das Problem für mich die .app-Datei, auf die ich zeigte. Sobald ich die "richtige" .app-Datei gefunden hatte, die tief im 5.1-Simulator-Ordner verborgen war, konnte ich endlich UIAutomation-Tests von der Befehlszeile mit Xcode 4.3 ausführen.
Der Pfad zur .app, der für mich funktioniert hat:
%Vor%Hier ist der vollständige Befehl, den ich verwende, um UIAutomation Tests von der Kommandozeile mit Xcode 4.3 zu starten:
%Vor%Hoffe, das hilft jemand anderem, da die Dokumentation dafür extrem mangelhaft ist.
Aktualisieren
Beachten Sie, dass ab Xcode 4.5.2 der Speicherort der Automatisierungsvorlage sich von dem in meiner ursprünglichen Antwort geändert hat:
%Vor%Die Pfade für den Kommandozeilenaufruf von UIAutomation haben sich in den letzten Jahren leicht verändert. Ich habe ein paar Bash-Shell-Skripte geschrieben, die zusammenarbeiten, die Ihre UIAutomation-Testdatei auf eine Weise starten können, die mit Xcode 4.4.1 funktioniert.
Sehen Sie sich diese Liste an: Ссылка
Kurz gesagt lautet der Schlüsselbefehl:
instruments -t $INSTRUMENTS_TEMPLATE $APP_PATH -e UIASCRIPT $SCRIPT_PATH -e UIARESULTSPATH $RESULTS_PATH
Meine Skripte zeigen die erforderlichen Variablensubstitutionen. Der andere Vorteil ist, dass iOS-Simulator-Apps häufig GUID als Teil ihres Pfades ändern. Mein Skript wird sie finden, so dass Sie die temporäre GUID nicht in Ihren Builds / Skripts / Befehlszeilenaufrufen fest codieren müssen.
Entschuldigung, mein Englisch ist sehr schlecht. Wie kann man dieses Skript am einfachsten von Teamtsity aus starten? Jede Versammlung - die Zahlen und Buchstaben sind unterschiedlich. Nicht der einfachste Weg:
Vielleicht ist es einfacher, von diesen Zahlen zu nehmen?
Die Buildkonfiguration sollte debuggen als Release. Das war der Grund für den Fehler in meinem Fall. Sie können die Build-Konfiguration in "Schemata bearbeiten" und über die Registerkarte Profil ändern. Stellen Sie sicher, dass sich die Build-Registerkarte auch im Debug-Modus befindet.
Ich habe den Befehl ps
ausgeführt, um zu sehen, welche Prozesse gerade ausgeführt werden. Ich fand, dass die Instrumente noch liefen. Ich habe dann killall instruments
getan, und das hat den Instrumentenprozess umgebracht. Ich habe dann meinen Instrumentenbefehl gegeben und es hat danach perfekt funktioniert.
Tags und Links ios continuous-integration ui-automation