Ich habe eine Reihe von automatisierten Testfällen in Instrumenten eingerichtet, die teueup.js verwenden, um eine App zu testen. Ich entschied mich für tuneup.js, da es mir erlaubte, meine Tests in einzelne Testfälle zu unterteilen und den ganzen Satz von einem einzelnen Skript aus auszuführen, das funktioniert gut, wenn alle Tests in Ordnung sind, aber wenn einer fehlschlägt, schlagen alle Tests fehl Der Simulator bleibt in einem unbekannten Zustand (ich habe meine Tests geschrieben, so dass sie alle auf demselben Anmeldebildschirm starten und enden) Gibt es eine Möglichkeit, den Simulator zurückzusetzen oder die App zwischen Testfällen neu zu starten?Zurücksetzen des iOS-Simulators zwischen den Tests
Antwort
Versuchen Sie, Tests über die Befehlszeile zu starten. UI Automation ermöglicht es, nur einen Test in einem Lauf auszuführen. Nachdem der Test abgeschlossen ist (egal, ob er fehlgeschlagen oder bestanden wurde), wird die Anwendung vom System gekickt (UIAutomation). Zumindest funktioniert es mit echten Geräten.
Ihr Startprogramm für die Befehlszeile funktioniert folgendermaßen: 1. Liest die Konfigurationsdatei (kann jede beliebige Datei txt oder xml sein) mit Pfad zu Ihren Tests. An dieser Stelle haben Sie ein Array mit Pfad zu Ihren Tests und Gesamtanzahl der Tests. 2. Dann wird mit der einfachen 'for'-Schleife (von 1 bis' testcount ') UIAutomation mit den erforderlichen Parametern gestartet. Einer der Parameter ist der Pfad zu Ihrem Testskript, der aus der Konfigurationsdatei gelesen wurde.
Sie können auch den Pfad zur 'Konfigurationsdatei' als Parameter für Ihr Kommandozeilen-Startskript angeben. Dadurch können Sie jeden Testsatz ausführen, indem Sie einfach das Startskript mit der erforderlichen Konfigurationsdatei aufrufen.
Ich schrieb ein Skript, das den Inhalt & Einstellungen aller Versionen und Geräte für den iOS-Simulator zurückgesetzt wird. Es ruft die Gerätenamen und Versionsnummern aus dem Menü ab, so dass es alle neuen Geräte oder iOS-Versionen enthält, für die Apple Simulatoren veröffentlicht.
Es ist einfach, manuell zu starten oder in einem Build-Skript zu verwenden. Ich würde vorschlagen, es vor dem Build als Pre-Action Run Script hinzuzufügen.
nicht bestandenen Tests Mit hinterlassen Sie Ihre App in einem unbekannten Zustand eines der Hauptprobleme ist, bei der Verwendung von Apple-Instrumente Werkzeug, wie sie ist. Wir haben dies in einem Rahmen mit der Bezeichnung Illuminator (on GitHub, and inspired by tuneup.js) auf zwei Arten gelöst.
Zuerst haben wir einen - einen Kanal für RPC mit der App in der Testphase geschrieben, die es uns ermöglicht, unsere App vor jedem Test neu zu setzen.
In Fällen, in denen dies nicht ausreicht, hat der Illuminator-Test-Runner die Option, jeden fehlgeschlagenen Test in seinem eigenen ursprünglichen Start des Simulators erneut auszuführen (z. B. mit --retest 1x,solo
).
Haben Sie zufällig eine Lösung gefunden? –
Nein, leider nicht, immer noch auf der Suche, aber nicht wirklich viel Hoffnung auf eine Lösung - habe Apple die Frage direkt gestellt, also werde ich updaten, wenn ich eine Antwort bekomme – ChrisH
Hast du die Antwort von Apple bekommen? – RaffAl