XCTests are failing with the message: *** Canceling tests due to timeout in Waiting for test process to check in...
This just started coming up in the last few days
I have the same issue with you. I'm tried all the possible way like you. And still not find the root cause to solve it. The issue is like cause by Xcode8, but I can not find any device log or error message to proof it.
update: My Devices iPhone6s (9.3.1 -> 9.3.2) iPhone5 (9.3.1 -> 9.3.2) both of them appear this issue Xcode Version 7.3.1 (7D1014) Xcode-beta Version 8.0 (8S128D)
I had the same issue with 7.3.1, iPad 9.3.3, Mac 10.11.6
Provisioning profiles are fine and no issues on that front.
Taking hints from the steps mentioned by OP, the issue went away after restarting iPad and XCode twice (in that order). After restarting XCode, I had to unplug iPad and plug again.
Did not had to delete the Derived Data or restart the Mac.
My friend also faced similar issues and sought Apple tech support by providing sample project. Apple Tech support team responded by asking him to file a bug
The problem lies in the fact (or rather: serious bug in xcodebuild) that the timeout for connecting to the XCTest server starts at the moment you issue the command xcodebuild. The timeout is 120 seconds, so if your compilation + startup of the simulator takes longer than 2 minutes xcodebuild will give this "Canceling tests due to timeout" error.
The solution is to break up the build into two commands. One for building and one for running the tests:
> xcodebuild clean build build-for-testing <other options>
> xcodebuild test-without-building <other options>
This will solve the timeout issue, because the test-without-building action doesn't have to compile first.
While I think Werner Altewischer's answer is correct it's always important to look at the earliest error you're seeing, not the latest.
In my case, I was seeing the error that was posted in the question but there were numerous compilation errors before that.
ex.
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')
I eventually realized that I upgraded my environment without updating my targeted Xcode version in in TravisCI.
Changing...
osx_image: xcode8.3
to...
osx_image: xcode9.3
in my .travis.yml
fixed this for me.
This is issue caused by an infinite loop in your code. I had the same error but I removed the piece of code causing the problem and it worked fine. xcode doesn't give you much info to work. Some causes might be a global var and a singleton pointing to each other
I wanted to add another solution here for others to check. If your laptop is subject to a strict antivirus, make sure that they have exempted ~/Library/Developer
. I was running into this issue because my antivirus was quarantining ~/Library/Developer/CoreSimulator/Devices/.....
.
Hard to run tests if the test process is quarantined.