UIAutomationTest kann nicht über die Befehlszeile ausgeführt werden

8

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?

    
Rafael 15.05.2012, 18:35
quelle

6 Antworten

6

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%     
DiscDev 05.06.2012, 22:03
quelle
6

Der korrekte Speicherort der Automation.tracetemplate ab Xcode 4.5.2 ist /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate

    
Jason Huh 05.11.2012 16:43
quelle
1

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.

    
idStar 02.09.2012 23:56
quelle
0

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:

  1. Reinigen Sie den Simulator vor der Montage
  2. finde den Ordner mit dem Programm, und er enthält diese Zahlen und Buchstaben, die in der Variablen geschrieben sind.
  3. Diese Variable, z. B. Schreiben des Skripts.

Vielleicht ist es einfacher, von diesen Zahlen zu nehmen?

    
ios tester 14.08.2012 15:03
quelle
0

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.

    
ArunGJ 10.12.2012 07:36
quelle
0

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.

    
KKendall 13.06.2013 17:25
quelle