【问题标题】:How to execute a long runing integration test for iOS如何为 iOS 执行长时间运行的集成测试
【发布时间】: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


【解决方案1】:

我是 AWS Device Farm 团队的一名工程师。您可以在此处查看在 Device Farm 上执行测试的时间限制:https://docs.aws.amazon.com/devicefarm/latest/developerguide/limits.html。 XCTest 框架可以通过循环或使用前面提到的https://developer.apple.com/documentation/xctest/xctestcase/3526064-executiontimeallowance 来延长几个小时。

为了获得有关 AWS Device Farm 特定问题的更好帮助,我建议利用 AWS Device Farm 论坛作为联系服务团队的媒介:https://forums.aws.amazon.com/forum.jspa?forumID=193

安迪

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 2015-05-07
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多