【发布时间】:2021-03-31 17:08:26
【问题描述】:
我尝试搜索,但找不到XCTest 的最大时间限制。我想编写一个运行 1 到 2 小时的测试。我可以使用wait(for: [CompletionExpectation], timeout: 3600) 执行此操作吗?还是会因为测试运行时间的上限而导致测试失败?
如果 XCtest 不能运行这么长的测试,那么我可以使用不同的测试框架吗?如果测试框架属于以下选项之一,那就太好了:Working with iOS Tests in AWS Device Farm
【问题讨论】:
-
AFAIK XCTestExpectation 可以等待一个小时。但是 test 会在这 1-2 个小时内做任何事情,还是只是闲置并等待测试完成?如果是后者,那么引入这种等待的潜在不稳定性和开销真的没有意义(首先,这样的测试会无缘无故地持有 CI 资源 1-2 小时,其次,它很有可能经常失败,因为基础设施中的任何问题都会破坏它)。而是初始化这个后台工作;然后在 2 小时后按计划运行检查该工作的结果。
-
你应该问的另一个问题是:你测试的东西是否正确。如果 iOS 不参与这 1-2 个小时的工作,为什么要从 iOS 端进行测试?这如何连接到您的实际应用程序?即您是否希望应用程序挂在那里等待响应 1-2 小时?
-
根据executionTimeAllowance,默认值为10分钟。你是说它可以增加到我想要的任何时间吗?是的,这是一个很好的问题,我的测试仅限于 Apple 提供的内容。
-
是的,您可以更改该设置。但时间越长,您的测试就越不稳定。因此,在与苹果作斗争之前,我真的会确保它是必要的。 iOS 测试应该代表可以在 iOS 上实际发生的事情。 iOS 应用程序在 1 小时内没有做任何事情,但仍然活着 - 听起来不像是现实场景
标签: ios swift xcode xctest aws-device-farm