【问题标题】:Run UITests with different arguments in one session在一个会话中运行具有不同参数的 UITest
【发布时间】:2020-02-24 06:16:50
【问题描述】:

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

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

手动终止,然后等待以确保它已关闭并希望在重新启动应用程序之前内存不足。但仍然没有运气,它有时会失败。任何建议都非常感谢。

【问题讨论】:

    标签: ios xcode testing xctest uitest


    【解决方案1】:

    在最好的情况下,睡眠是有问题的。有一个 wait(for:timeout:) 函数可能会做得更好。

    【讨论】:

      【解决方案2】:

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

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

      你需要的控制台命令是

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

      【讨论】:

      • 但是当你处于 UI 测试用例的中间时,你怎么能运行它呢?
      • 随便用host.executeCommand("scrun simctl ...")就行了。
      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多