XCTests在物理设备上失败:"由于超时而取消测试..."

Chr*_*nce 18 iphone xcode ios xctest swift

XCTests失败了消息:*** Canceling tests due to timeout in Waiting for test process to check in...这刚刚开始在最近几天出现.我正在使用Xcode 7.3.1,在iPhone 6上运行iOS 9.3.2.我的应用程序主要是在Swift中编写的.

我见过一些类似的帖子:

  1. 无法在iOS设备上运行XCTests
  2. 通过JNLP使用Jenkins时,iOS测试不会在模拟器上运行

这些其他帖子谈到了代码签名时出现的这个问题.代码签名似乎不是我的问题 - 我查看了KeyChain Access实用程序,但没有看到任何相关的过期证书.此外,到目前为止(非常暂时)修复我的问题是重新启动我的iPhone.(不幸的是,这个修复不会持续很长时间 - 可能是几次XCtests运行并且问题再次出现).我没有运行Jenkins,只是XCTests.

我尝试重新启动Xcode并从DerivedData文件夹中删除所有文件/文件夹,但这些都不能解决问题.

只安装Xcode8(第一个beta版本).但除了推出一两次之外,我一般都不会使用它.刚安装完这个问题后,这个问题似乎很奇怪.

2016年6月25日更新

我已经稍微缩小了这个问题.其他几个症状与超时问题同时出现:

  1. 直接从printXCTest文件中的语句进行控制台记录停止.
  2. 计时器失败 - 这实际上是问题的根源.我的测试涉及首先等待一些服务器交互,这发生了.但等待使用的NSTimer从不执行其回调.
  3. 断点停止工作.

值得注意的是,我正在手动运行这些XCTest.也就是说,我分别运行每个测试,因此每个测试都涉及构建.

此外,到目前为止,我测试了以下内容:

  1. 重启Xcode(没有帮助)
  2. 重新启动Mac OS X(没有帮助)
  3. 删除派生数据内容(没有帮助)
  4. 重启iPhone--有帮助,但只能再次运行几个Xcode测试.
  5. 尝试在iPhone上使用wifi与热点运行(无需更改问题)
  6. TODO:用模拟器运行
  7. 这可能是电缆或USB端口问题吗?更换连接设备的电缆没有帮助.
  8. 删除应用程序并重新安装/重建没有帮助.
  9. 尝试使用不同的硬件(iPad Air运行iOS 9.3.2).同样的问题.

我的配置是:iOS 9.3.2,Xcode 7.3.1,Mac OS X 10.11.5(15F34).

Wer*_*her 19

问题在于(或者更确切地说:xcodebuild中的严重错误)在发出命令xcodebuild时,连接到XCTest服务器的超时开始.超时为120秒,因此如果模拟器的编译+启动时间超过2分钟,xcodebuild将给出"由于超时而取消测试"错误.

解决方案是将构建分解为两个命令.一个用于构建,另一个用于运行测试:

> xcodebuild clean build build-for-testing <other options>
> xcodebuild test-without-building <other options>
Run Code Online (Sandbox Code Playgroud)

这将解决超时问题,因为没有构建测试的操作不必先编译.


bha*_*eda 6

我在7.3.1,iPad 9.3.3,Mac 10.11.6中遇到了同样的问题

供应配置文件很好,在这方面没有问题.

从OP提到的步骤中获取提示,在重新启动iPad和XCode两次后(按此顺序),问题就消失了.重新启动XCode后,我不得不重新插上iPad并再次插入.

没有必要删除派生数据或重新启动Mac.

我的朋友也面临类似的问题,并通过提供示例项目寻求Apple技术支持.Apple Tech支持团队的回应是要求他提交错误


Dai*_*hen 3

我和你有同样的问题。我和你一样,已经尝试了所有可能的方法。而且还没有找到根本原因来解决。这个问题类似于 Xcode8 引起的,但我找不到任何设备日志或错误消息来证明它。

更新:我的设备 iPhone6s (9.3.1 -> 9.3.2) iPhone5 (9.3.1 -> 9.3.2) 都出现此问题 Xcode 版本 7.3.1 (7D1014) Xcode-beta 版本 8.0 (8S128D)

  • 在安装并运行 Xcode8(第一个测试版)之前我也没有遇到这个问题。 (4认同)