XCTests 失败并显示以下消息:*** Canceling tests due to timeout in Waiting for test process to check in...
这只是最近几天才开始出现的。我使用的是 Xcode 7.3.1,iOS 9.3.2 在 iPhone 6 上运行。我的应用程序主要是用 Swift 编写的。
我看过一些类似的帖子:
- 无法在 iOS 设备上运行 XCTests https://stackoverflow.com/questions/31381291/unable-to-run-xctests-on-ios-device
- 通过 JNLP 使用 Jenkins 时,iOS 测试将不会在模拟器上运行 https://stackoverflow.com/questions/29241877/ios-tests-will-not-run-on-simulator-when-using-jenkins-through-jnlp
其他帖子讨论了代码签名引起的这个问题。代码签名似乎不是我的问题——我查看了 KeyChain Access 实用程序,没有看到任何相关的过期证书。另外,到目前为止(非常暂时)解决我的问题的是重新启动我的 iPhone。 (不幸的是,该修复不会持续很长时间——也许运行几次 XCtests 后问题就会再次出现)。我没有运行 Jenkins,只是运行 XCTests。
我尝试重新启动 Xcode 并从 DerivedData 文件夹中删除所有文件/文件夹,但这些都无法解决问题。
I did只需安装 Xcode8(第一个测试版)。但除了启动过一两次之外,我一般不使用它。奇怪的是,这个问题是在刚刚安装后出现的。
2016 年 6 月 25 日更新
我已经缩小了这个问题的范围。与超时问题同时出现的其他几个症状:
- 直接从控制台记录
print
XCTest 文件中的语句停止。
- 定时器失败——这实际上是问题的根源。我的测试涉及首先等待发生的某些服务器交互。但等待使用的 NSTimer 永远不会执行其回调。
- 断点停止工作。
值得注意的是,我正在手动运行这些 XCTest。也就是说,我单独运行每个测试,因此每个测试都涉及一个构建。
另外,到目前为止我已经测试了以下内容:
- 重新启动 Xcode(没有帮助)
- 重新启动 Mac OS X(没有帮助)
- 删除派生数据内容(没有帮助)
- 重新启动 iPhone — 有帮助,但仅再次允许运行一些 Xcode 测试。
- 尝试在 iPhone 上使用 wifi 与热点运行(没有问题的变化)
- TODO:使用模拟器运行
- 这可能是电缆或 USB 端口问题吗?更改连接设备的电缆没有帮助。
- 删除应用程序并重新安装/重建没有帮助。
- 在不同的硬件上进行了尝试(运行 iOS 9.3.2 的 iPad Air)。同样的问题。
我的配置是:iOS 9.3.2、Xcode 7.3.1、Mac OS X 10.11.5 (15F34)。
问题在于(或者更确切地说:xcodebuild 中的严重错误),连接到 XCTest 服务器的超时从您发出命令 xcodebuild 的那一刻开始。超时时间为 120 秒,因此如果您的编译+启动模拟器花费的时间超过 2 分钟,xcodebuild 将给出“由于超时而取消测试”错误。
解决方案是将构建分解为两个命令。一种用于构建,一种用于运行测试:
> xcodebuild clean build build-for-testing <other options>
> xcodebuild test-without-building <other options>
这将解决超时问题,因为无需先进行编译即可进行测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)