Ich habe eine App. Es gibt eine Schaltfläche in der App, die nach dem Anklicken die App verlässt. Ich teste die App mit UIAutomation-Instrumenten. Ich möchte diesen Knopf testen. Aber nachdem die App beendet wurde, gibt das Gerät keine Ausnahme mehr aus. Nach der App möchte ich die App erneut öffnen und mit dem Rest des Tests fortfahren. War noch jemand im selben Szenario? Wenn ja, kannst du bitte die Lösung teilen, wenn du welche gefunden hast?Wie kann ich eine iOS-App mit dem UIAutomation-Instrument testen, auch nachdem die App beendet wurde?
Antwort
Dies ist nicht möglich, da Instruments nach dem Beenden der Verbindung die Verbindung zum App-Prozess verliert.
Wenn Sie die Benutzeroberflächenautomatisierung über die Befehlszeile scripten, können Sie ein zweites Automatisierungsskript ausführen, nachdem das erste die Anwendung beendet hat und überprüft, ob alles zurückgesetzt wurde.
instruments \
-D [trace document] \
-t [instruments template] \
/path/to/Bundle.app \
-e UIARESULTSPATH [directory to store test output] \
-e UIASCRIPT reset_the_app.js
instruments \
-D [trace document] \
-t [instruments template] \
/path/to/Bundle.app \
-e UIARESULTSPATH [directory to store test output] \
-e UIASCRIPT check_that_the_app_is_reset.js
Also, anstatt zu versuchen, die gleiche Instanz von Instrumenten zu bekommen, um die App, nur läuft zwei separate Skripte, eine, die tut Ihrem Reset-und-Abbruch, und die anderen neu zu beleben und wieder anbringen, dass die resultierenden überprüft Status der App
Danke für die Antwort. Ich dachte das gleiche, dass dies nicht mit UIAutomation selbst gemacht werden könnte. –
Sie können:
UIATarget.localTarget().deactivateAppForDuration(n);
wobei n die Anzahl der Sekunden Sie diese App neu gestartet werden soll ist. Ich hoffe das hilft.
Deaktivierung der App ist in keinster Weise ein Neustart. Weitere Informationen finden Sie im Dokument https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html#//apple_ref/doc/uid/TP40007072-CH8-SW1. –
Danke für die Antworten, aber die Dokumentation sagt: „Wenn ein Benutzer die App verlässt durch die Home-Taste tippen oder eine andere App verursacht in den Vordergrund zu kommen, Ihre App suspendiert“
Also ist es nicht neu gestartet aber suspendiert?
Ja, die App wird für die angegebene Zeit in Sekunden angehalten und nicht neu gestartet. – coder284
Nur FYI - Apple mag es nicht, wenn Sie eine Schaltfläche haben, die die App existiert. Bauen Sie für den App Store? – nycynik
Ja, es ist bereits auf dem Appstore. Es ist ein Messenger und es gibt diese Schaltfläche, die die App zurücksetzt. (Es löscht die Anmeldeinformationen.) Als Konsequenz wird die App beendet. Technisch gesehen ist es kein Knopf, um die App zu verlassen. –