在一个会话中使用不同的参数运行UITest



我正在尝试运行UITest,它需要在运行过程中更改启动参数,并使用新参数重新启动应用程序。理论上,XCUIApplication.launch应该使用新的参数来终止和重新启动应用程序,但我发现它不可靠,而且并不总是发生。然后我切换到:

func launchAndWaitForLoadingViewFinish() {
terminate()
sleep(5)
launch()
waitOnLoadingView()
}

手动终止,然后等待以确保它已关闭,并有望在重新启动应用程序之前耗尽内存。但仍然没有运气,它不时地失败。如有任何建议,我们将不胜感激。

您应该尝试https://github.com/Subito-it/SBTUITestTunnelHost

该工具允许在测试运行时同步执行macOS控制台命令。

您需要的控制台命令是

xcrun simctl terminate ...
xcrun simctl launch ...

在最好的时候睡觉是有问题的。有一个wait(for:timeout:)函数可能会做得更好。

最新更新