XCTest UI测试 - 如何在不重新启动的情况下关闭和打开应用程序?

Con*_*sed 6 background suspend launch xctest xcode-ui-testing

我想让我的应用程序转到后台,然后回到前台.

要使应用程序进入后台: XCUIDevice.shared().press(XCUIDeviceButton.home)

要终止应用(强制点击): XCUIApplication().terminate()

要启动应用程序: XCUIApplication().launch()

问题:当我尝试关闭并打开应用程序时,launch()方法会从后台清除应用程序,它会新打开应用程序.

我看到了这个评论.但是无法在UI测试中弄清楚它.我正在使用Swift.需要帮助!!

Nea*_*eal 11

从Xcode 9和iOS 11开始,XCUIApplication()有一种activate()方法可用于重新启动应用程序.

正如Brandenbyers建议的那样,您可以"按"主页按钮来设置应用程序的背景,然后再次激活它以避免使用Siri:

XCUIDevice.shared.press(.home)
XCUIApplication().activate()
Run Code Online (Sandbox Code Playgroud)


bra*_*ers 5

从Xcode 8.3和iOS 10.3开始,现在可以使用Siri重新启动后台应用程序了!

XCUIDevice.shared().press(XCUIDeviceButton.home)
XCUIDevice.shared().siriService.activate(voiceRecognitionText: "Open {appName}")
Run Code Online (Sandbox Code Playgroud)

确保将其包含@available(iOS 10.3, *)在测试套件文件的顶部。