Test target X encountered an error (Early unexpected exit, operation never finished bootstrapping - no restart will be attempted

余生颓废 提交于 2019-11-29 21:11:29

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

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

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

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.

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.

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!

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

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.

In my case I had not added a Run Script phase for the Quick and Nimble libraries which I integrated using Carthage.

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.

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!

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

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

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

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.

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

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.

In my case I had to remove $(inherited) from Other Linker Flags in my ui test target. I have installed static libraries via cocoapods.

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

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.

Switching from Xcode 9.4.1 to Xcode 10.1 solved the problem in my case.

MarekM

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.
        }
    }

}

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.

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.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!