我正在尝试运行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:)
功能可能会做得更好。