Senden einer App an den Hintergrund und erneutes Starten von den aktuellen Versionen in XCTest

8

Ich suchte nach einer Lösung für mein Problem, wo ich meine App in den Hintergrund schicken und nach einem bestimmten Zeitintervall neu starten muss. Um dies in Instruments UIAutomation zu erreichen, wurde disableAppForDuration () verwendet. Weiß jemand, wie man das in XCTest erreicht?

    
rachit 17.11.2016, 11:11
quelle

2 Antworten

6

Nicht positiv, ob das funktioniert, da ich es noch nicht getestet habe, aber es ist einen Versuch wert. Wenn nichts anderes sollte es Ihnen eine gute Idee geben, wo Sie suchen.

Die XCUIA-Anwendungsklasse bietet Methoden zum programmgesteuerten Beenden und Starten Ihrer App: Ссылка

Mit

XCUIDevice class können Sie einen Tastendruck auf dem Gerät simulieren: Ссылка

Sie können diese zusammen mit UIControl und NSURLSessionTask verwenden, um Ihre Anwendung zu unterbrechen.

Ein Beispiel für diesen Prozess mit Swift 3 sieht möglicherweise so aus (Syntax kann für Swift 2 und darunter leicht unterschiedlich sein):

%Vor%

Eine andere Möglichkeit besteht darin, einfach eine Home-Taste zu drücken und dann die App neu zu starten, nachdem ein Timer abgelaufen ist:

%Vor%

Keine dieser Möglichkeiten kann das tun, was Sie fragen oder perfekt funktionieren, aber hoffentlich gibt es Ihnen einen Ausgangspunkt. Sie können damit spielen und eine Lösung finden, die für Sie arbeitet. Viel Glück!

    
user3353890 27.11.2016, 09:34
quelle
1

Wenn Sie Xcode 8.3 und iOS 10.3 mit Ihren aktuellen Tests verwenden können, sollten Sie Folgendes versuchen:

%Vor%

Stellen Sie sicher, dass @available(iOS 10.3, *) am Anfang Ihrer Testsuite-Datei enthalten ist.

Dies entspricht relativ deactivateAppForDuration() . Ändere einfach sleep() auf die gewünschte Dauer.

    
brandenbyers 27.03.2017 23:07
quelle