Kann nicht laufen UIAutomationTest von der Kommandozeile aus
Habe ich eine iOS-Anwendung, und ich möchte es in die kontinuierliche integration. Die Strategie, die ich verwende zu tun, in der versucht wird, die zum ausführen der tests von der Kommandozeile aus.
Ich versuche es mit dem folgenden Skript:
TRACETEMPLATE="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate"
instruments -t $TRACETEMPLATE build/Release-iphonesimulator/MyApp.app -e UIACSCRIPT "UnitTests/SomeTest.js"
SomeTest.js ist ein einfaches javascript-Datei, die ich ausführen kann in der Instrumentierung innerhalb Xcode und es funktioniert. Ich Baue meine Anwendung mit:
xcodebuild -alltargets -sdk iphonesimulator5.1
und dies erzeugt die Anwendung ein.app. Ich kann führen Sie die Anwendung von Xcode in der simulator ganz gut, aber wenn ich versuche zu laufen, indem Sie die Instrumente, bekomme ich eine box, die sagen, dass es ist ein unbekannter Fehler und in der Kommandozeile druckt es:
2012-05-15 15:32:59.928 instruments[17548:1d03] Recording cancelled : At least one target failed to launch; aborting run
Instruments Trace Error : Failed to start trace.
Kann jemand mir jede Hilfe/Vorschläge, was könnte passiert sein und wie kann ich dieses Problem beheben?
Auch, immer offen zu den iPad-simulator? Kann ich es machen dass es sich öffnet jeden simulator ich will?
- Ich habe genau das gleiche Problem und können es auch nicht lösen 🙁
- Ich konnte keine Lösung finden bisher. Ich werde versuchen, Fragen über apple-eigenen Foren zu sehen, wenn Sie kommen mit etwas. Wenn ich etwas herausfinden, werde ich Sie wissen lassen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich immer der gleiche Fehler und fast zog meine Haare aus versuchen, es zu lösen. Die Fehlermeldungen sind völlig nutzlos.
Was war das problem für mich war .app-Datei, ich wurde verwiesen. Einmal fand ich die "richtigen" .app-Datei, die war tief vergraben im 5.1-Simulator-Ordner, konnte ich endlich zum laufen UIAutomation tests von der Kommandozeile aus mit Xcode 4.3.
Den Pfad zu den .app, die für mich gearbeitet:
Hier ist der vollständige Befehl, den ich bin mit zu laufen UIAutomation tests von der Kommandozeile aus mit Xcode 4.3:
Hoffe, dies hilft jemand anderes, als die Dokumentation gibt es für diese extrem fehlt.
Update
Beachten Sie, dass Xcode 4.5.2 die Automatisierung Vorlage, die Lage hat sich geändert, dass auf meinem ursprünglichen Antwort:
Fail: The target application appears to have died Instruments Trace Complete
Die richtige Lage der Automation.tracetemplate, als von Xcode 4.5.2, ist
/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate
Dass der Pfad für das Kommandozeilen-Aufruf von UIAutomation hat sich etwas verändert in den letzten paar Jahren. Ich habe geschrieben ein paar bash-shell-Skripte, die arbeiten zusammen, die können starten Sie Ihre UIAutomation test-Datei in einer Weise, dass arbeiten mit Xcode 4.4.1.
Sehen diesem gist: https://gist.github.com/3605692#comments
Kurz gesagt, der Schlüssel-Befehl beendet werden:
instruments -t $INSTRUMENTS_TEMPLATE $APP_PATH -e UIASCRIPT $SCRIPT_PATH -e UIARESULTSPATH $RESULTS_PATH
Meine Skripte zeigen die Variablen-Ersetzungen erforderlich. Der andere Vorteil ist, dass iOS-simulator-apps haben oft wechselnde GUID als Teil von Ihr Weg. Mein Skript findet, so dass Sie nicht haben, um codieren die temporäre GUID in Ihre builds /scripts /Kommandozeilen-Aufrufe.
sorry, mein Englisch ist sehr schlecht.
Der einfachste Weg, um dieses Skript ausführen aus Teamtsity? Jede assembly - die zahlen und Buchstaben sind anders.
Nicht der einfachste Weg:
Vielleicht gibt es eine Möglichkeit, leichter zu nehmen, aus diesen zahlen?
Die Build-Konfiguration sollte als debug-Version. Das war der Grund für die Fehler in meinem Fall.
Sie können ändern, Build-Konfiguration in 'Bearbeiten-Schemata' und durch die Wahl der Registerkarte "Profil". Stellen Sie sicher, dass die Registerkarte "erstellen" ist auch im debug-Modus.
Habe ich die
ps
Befehl um zu sehen, welche Prozesse ausgeführt werden. Ich fand, dass die Instrumente noch ausgeführt wurde. Ich habe Sie dannkillall instruments
und tötete die Instrumente Prozess. Ich habe dann meine Instrumente-Befehl, und es funktionierte perfekt danach.