Test target X encountered an error (Early unexpected exit, operation never finished bootstrapping - no restart will be attempted
IosUnit TestingXcode7OcmockIos Problem Overview
I have started working with OCMock
to write test cases for the existing project that I have integrated in my project workspace. After following all the steps mentioned in this link.
When I first executed my test case it's giving the error above. I searched it and tried following some of the solutions like creating new target, restarting Xcode but it didn't help me out. Any idea?
Ios Solutions
Solution 1 - Ios
I have my notes and demo applications for both Cocoapods and Carthage here https://github.com/onmyway133/TestTarget
- Make sure all frameworks are linked to the Test targets
- Configure
Runpath Search Paths
to point to$(FRAMEWORK_SEARCH_PATHS)
More info
Solution 2 - Ios
I'm using carthage and problem for me was searching for dependencies in a test target. Fix:
Add $(PROJECT_DIR)/Carthage/Build/iOS
to Runpath Search Paths
You can find reference here: Carthage issue
Solution 3 - Ios
There might another solution, if you are using CocoaPods and the UI test target is embedded inside the app target, which is, unfortunately, the case in the default template (pod init
).
Try move the UI test target out of the app target as follows:
from:
platform :ios, '11.0'
use_frameworks!
target 'MyApp' do
# Pods for MyApp
target 'MyAppUITests' do
inherit! :search_paths
# Pods for testing
end
end
to:
platform :ios, '11.0'
use_frameworks!
# Pods shared between MyApp and MyAppUITests
target 'MyApp' do
# Pods for MyApp only
end
target 'MyAppUITests' do
# Pods for testing
end
Credit goes to SpacyRicochet in this issue thread: https://github.com/CocoaPods/CocoaPods/issues/4752#issuecomment-305101269
Solution 4 - Ios
My solution was to add a "Copy File phase" to my test target. There I set destination to Frameworks and added my framework with the + sign.
Solution 5 - Ios
In my case there was nothing wrong with linked files. The Simulator was kind of stuck at the message that the app triggered, like: "App name would like to send you notifications". Pressed OK and the next time my XCTests worked fine.
Solution 6 - Ios
Just to share my experience about this error:
I'm using fastlane + cocoapods.
I have a workspace with 2 dynamic frameworks:
- A.framework
- B.framework
Dependencies:
- A depends by AFNetworking using cocoapods
- B depends by A
Dependency are defined in the Podfile.
The error was raised executing framework B tests.
In my case the problem was related to the missing dependency to AFNetworking in B.framework target.
Adding a pod dependency to AFNetworking in B.framework in Podfile, all was resolved.
So even if the target B is compiling successfully, AFNetworking was not embedded into the B test app and the simulator wasn't able to run B test app raising this "very meaningful" (*) error.
(*) thanks to Apple for this!
Solution 7 - Ios
Wow, I wasted a lot of time on this, my test bundle had the "Host Application" to my application selected. Other test bundles did not.
I expect this solution may not be the right solution for every situation, but my tests were mainly to test the dynamic library and it did not really need a Host Application to run. I was getting the above error, turning this off allowed me to run the tests without getting that error and the breakpoints worked. I was running MacOS but it probably does similar for other environments. I expect this solution may not be the right solution for every situation, but my tests were mainly to test the dynamic library and it did not really need a Host Application to run.
On the test bundle Go to General -> Testing -> Set "Host Application" to None.
Solution 8 - Ios
In my case Build Active Architecture Only was set to YES.
In project and targets : Build Settings -> Architectures -> Build Active Architecture Only should be NO instead of YES
Solution 9 - Ios
My case was special. I used 2 files as test classes. one worked perfectly and the other had that error.
Both link against the same framework.
Solution
> CLEAR DERIVED DATA
> Window => Projects => Delete (at your project)
Good luck and happy testing!
Solution 10 - Ios
In my case I had not added a Run Script phase for the Quick and Nimble libraries which I integrated using Carthage.
Solution 11 - Ios
I had the same issue and already tried everything proposed here without any success.
Running the tests on a different simulator solved the problem for me. After that, the original simulator also didn't cause fails any longer.
Solution 12 - Ios
I tried many different options but none helped me except below and wasted lot of time, posting this so that really help and save time on this:
Follow all of the instructions for Full Manual Configuration
https://github.com/appium/appium-xcuitest-driver/blob/master/docs/real-device-config.md#full-manual-configuration Tips When you come to the part where you are executing xcodebuild, if the build fails, and the log mentions "RoutingHTTPServer" or "YYCache", add these two frameworks on the Build Phases tab of the WebDriverAgentRunner target Open the WebDriverAgent.xcodeproj
Select 'Targets' -> 'WebDriverAgentRunner'
Open 'Build Phases' -> 'Copy frameworks'
Click '+' -> add RoutingHTTPServer
Click '+' -> add YYCache https://github.com/facebook/WebDriverAgent/issues/902#issuecomment-382344697 https://github.com/facebook/WebDriverAgent/issues/902#issuecomment-383362376
The build/test may also fail due to the WebDriverAgentRunner app/developer being untrusted on the device. Please trust the app and try again.
While trying to access the WebDriverAgent server status, if it tries to connect on port 0, hardcode port 8100 in appium-xcuitest-driver/WebDriverAgent/WebDriverAgentLib/Routing/FBWebServer.m
Original line: server.port = (UInt16)port; New line: server.port = 8100; https://github.com/facebook/WebDriverAgent/issues/661#issuecomment-338900334
Solution 13 - Ios
During I was creating Cocoa Touch Framework every any attempt to run tests ended with the same error message like OP wrote.
I fixed it by changing build configuration of TEST from Debug to Release.
Step 1
Step 2
Step 3
Note: There was not need any extra configuration of Runpath Search Paths
.
I am using Cocoapods in ver 1.6.1 and Xcode 10.1
Solution 14 - Ios
If anybody still experience this issue this answer helped me. Set Always Embed Swift Standard Libraries to No in the projects settings. I did it for the UI test target.
Solution 15 - Ios
Would like to share my answer hope it could save someones time.
For me .m file was not properly linked under Build Phases - > Compile Sources
Solution 16 - Ios
In my case, I had declared a property as readonly in a header file:
// In .h file
@property (nonatomic, readonly) NSUInteger count;
but I forgot to add this declaration to the .m so a setter would be generated:
// In .m file
@property (nonatomic, assign) NSUInteger count;
Silly mistake, not totally sure why it manifested in this error, but adding that line to the .m fixed the problem.
Solution 17 - Ios
In my case, my Build Settings -> Architectures was setting only for armv7 and I changed for ARCHS_STANDARD that was the same of my Host Application
Solution 18 - Ios
For me, I had to 'Trust' developer in 'Device Management' under 'Settings -> General' on my device. (Settings -> General -> Device Management -> DeveloperID -> 'Trust the app') As I was running app through side loading using my apple ID.
Solution 19 - Ios
In my case I had to remove $(inherited)
from Other Linker Flags in my ui test target. I have installed static libraries via cocoapods.
Solution 20 - Ios
for me the problem was the Pod file
I made a new target but forgot add target in the pod file
target 'mobilesdkIntegrationTests' do
// write here any predefined pods if any, like
testing_pods
end
just add target in the pod file fixed the issue
Solution 21 - Ios
There are some automatically added project settings that come with Xcode 10, and they come some of the time, not all of the time. After downloading Xcode 10, restart your computer. That is what fixed this for me. None of these answers fixed it for me. I hope this helps. I wish I could give a better answer.
Solution 22 - Ios
Switching from Xcode 9.4.1 to Xcode 10.1 solved the problem in my case.
Solution 23 - Ios
In my case I had completely clean project with default empty tests. If I have added any pod I received this error. Solution was that at least one file in Test target should import Foundation
import XCTest
import Foundation
@testable import CVZebra
class CVZebraTests: XCTestCase {
override func setUp() {
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
func testExample() {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
func testPerformanceExample() {
// This is an example of a performance test case.
self.measure {
// Put the code you want to measure the time of here.
}
}
}
Solution 24 - Ios
In my case there was an issue with my app in the simulator. Before the issue came up, I processed a db-migration (realm) which failed and destroyed my db. So everything worked fine for me after I deleted the app on the simulator.