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?
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: Ссылка
MitXCUIDevice 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!
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.
Tags und Links ios swift ui-automation xctest xctestcase