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中编写的。
我看过一些类似的帖子:
其他帖子谈论此问题与代码签名有关。代码签名似乎不是我的问题 - 我已经查看了KeyChain Access实用程序,并且没有看到任何相关的过期证书。此外,到目前为止(非常暂时)修复我的问题是重新启动我的iPhone。 (不幸的是,这个修复不会持续很长时间 - 也许是几次XCtests运行并且问题再次出现)。我没有运行Jenkins,只是XCTests。
我尝试重新启动Xcode并从DerivedData文件夹中删除所有文件/文件夹,但这些都不能解决问题。
我 只安装了Xcode8(第一个测试版)。但除了推出一两次之外,我通常不会使用它。刚刚安装完毕后出现这个问题似乎很奇怪。
更新6/25/16
我已经稍微缩小了这个问题。其他几个症状与超时问题同时出现:
print
语句停止控制台记录。 值得注意的是,我手动运行这些XCTest。也就是说,我分别运行每个测试,因此每个测试都涉及构建。
此外,到目前为止,我测试了以下内容:
我的配置是:iOS 9.3.2,Xcode 7.3.1,Mac OS X 10.11.5(15F34)。
答案 0 :(得分:19)
问题在于(或者更确切地说:xcodebuild中的严重错误)在发出命令xcodebuild时,连接到XCTest服务器的超时开始。超时为120秒,因此如果您的编译+模拟器启动时间超过2分钟,xcodebuild将提供此"由于超时而取消测试"错误。
解决方案是将构建分解为两个命令。一个用于构建,一个用于运行测试:
> xcodebuild clean build build-for-testing <other options>
> xcodebuild test-without-building <other options>
这将解决超时问题,因为没有构建测试的操作不必先编译。
答案 1 :(得分:6)
我在7.3.1,iPad 9.3.3,Mac 10.11.6
中遇到了同样的问题配置文件很好,在这方面没有问题。
从OP提到的步骤中提示,在重启iPad和XCode两次后(按此顺序),问题就消失了。重新启动XCode后,我不得不重新插上iPad并重新插上。
不必删除派生数据或重启Mac。
我的朋友也面临类似问题,并通过提供示例项目寻求Apple技术支持。 Apple Tech支持团队的回应是要求他提交错误
答案 2 :(得分: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)
答案 3 :(得分:0)
虽然我认为Werner Altewischer的回答是正确的,但是看看你最早看到的错误总是很重要,而不是最新的错误。
在我的情况下,我看到问题中发布的错误,但在此之前有很多编译错误。
离。
Testing failed:
'...' is not a postfix unary operator
'count' is unavailable: there is no universally good answer, see the documentation comment for discussion
Cannot convert value of type 'Int' to expected argument type 'IntMax' (aka 'Int64')
Cannot convert value of type 'Int8' to expected argument type 'IntMax' (aka 'Int64')
Cannot convert value of type 'Int16' to expected argument type 'IntMax' (aka 'Int64')
Cannot convert value of type 'Int32' to expected argument type 'IntMax' (aka 'Int64')
Cannot convert value of type 'UInt' to expected argument type 'UIntMax' (aka 'UInt64')
Cannot convert value of type 'UInt8' to expected argument type 'UIntMax' (aka 'UInt64')
Cannot convert value of type 'UInt16' to expected argument type 'UIntMax' (aka 'UInt64')
Cannot convert value of type 'UInt32' to expected argument type 'UIntMax' (aka 'UInt64')
我最终意识到我升级了我的环境而没有在TravisCI中更新我的目标Xcode版本。
更改...
osx_image: xcode8.3
为...
osx_image: xcode9.3
在我.travis.yml
为我修复此内容。
答案 4 :(得分:0)
我想在这里添加其他解决方案供其他人检查。如果您的笔记本电脑需要严格的防病毒功能,请确保它们已免除store_and_return_value
。我遇到了这个问题,因为我的防病毒软件隔离了~/Library/Developer
。
如果测试过程被隔离,则很难运行测试。
答案 5 :(得分:-2)
这是由代码中的无限循环引起的问题。我有同样的错误,但我删除了导致问题的代码片段,它工作正常。 xcode不会为您提供太多信息。一些原因可能是全局var和一个指向彼此的单例