测试运行器未能加载测试包

The test runner failed to load the test bundle

我正在开发 cocoa 触摸框架,并且我正在使用 CocoaPods 导入 "RealmSwift"。项目构建成功,但测试加载失败。 我收到以下错误:

xctest (97035) encountered an error (Early unexpected exit, operation never finished bootstrapping - no restart will be attempted. (Underlying error: The test runner failed to load the test bundle. Executable cannot be loaded for some other reason, such as a problem with a library it depends on or a code signature/entitlements mismatch.))

崩溃日志:

2019-02-27 17:35:44.197599+0400 xctest[12408:121075] The bundle “MyFrameworkTests” couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle.
2019-02-27 17:35:44.197835+0400 xctest[12408:121075] (dlopen_preflight(/Users/zakaria/Library/Developer/Xcode/DerivedData/MyFramework-cltpexonmtkefveximwygxbkkcrj/Build/Products/Debug-iphonesimulator/MyFrameworkTests.xctest/MyFrameworkTests): Library not loaded: @rpath/Realm.framework/Realm
  Referenced from: /Users/zakaria/Library/Developer/Xcode/DerivedData/MyFramework-cltpexonmtkefveximwygxbkkcrj/Build/Products/Debug-iphonesimulator/MyFrameworkTests.xctest/MyFrameworkTests
  Reason: image not found)

我尝试了所有可以在网上找到的解决方案,但都无济于事。

值得一提的是,这在iOS项目中成功运行,问题仅出现在cocoa触摸框架中。

我的podfile如下:

target 'Framework' do
  use_frameworks!

  pod 'RealmSwift', '~> 3.13.1'

  target 'FrameworkTests' do
    inherit! :search_paths
  end

end

我正在使用 Xcode 版本:10.1 和 CocoaPods 版本:1.6.0

转到派生数据文件夹中的测试日志:

~/Library/Developer/Xcode/DerivedData/APP_BUILD_FOLDER/Logs/Test

您会找到一个 .xcresult 测试结果包,右键单击它并选择 Show package contents,然后在 1_Test/Diagnostics 文件夹中,您应该找到 run/crash 测试日志.

这个日志会给你一个你失败的确切原因,你可以post在这里如果你找到它后不知道如何处理它,我们会帮助你:-)

如果没有这个日志,您的问题可能是任何原因,因为这是相当通用的 xcbuild 失败消息。

好的,感谢日志,这应该可以解决您的问题:

target 'Framework' do
  use_frameworks!

  pod 'RealmSwift', '~> 3.13.1'

  target 'FrameworkTests' do
    inherit! :search_paths
    pod 'RealmSwift', '~> 3.13.1'
  end

end

您没有为 pods 中的测试目标安装 RealmSwift 库,仅针对您的应用,正如您从日志中可以看出的那样:

...Library not loaded: @rpath/Realm.framework/Realm referenced from...MyFrameworkTests.xctest...

将上面的代码添加到您的 podfile 和 运行 pod update :-)

类似的修改帮助了我。

use_frameworks!

target 'Framework' do

  pod 'RealmSwift', '~> 3.13.1'

end

target 'FrameworkTests' do

  pod 'RealmSwift', '~> 3.13.1'

end

随意使用"def"link

这是对我有用的播客文件:

platform :ios, '11.0'

def shared
  use_frameworks!
  pod 'RealmSwift', '~> 3.18.0'
end

target 'Framework' do
  shared
end

target 'FrameworkTests' do
  shared
end

我最近在尝试 运行 我们的 UI 测试目标时遇到了这个问题,在我们的最小部署目标从 11.0 更新到 13.2 后立即失败。奇怪的是,将目标一直更新到 12.4 工作得很好,但任何 >= 13.0 都会导致错误

The bundle "MyAppUITests" couldn't be loaded. Try reinstalling the bundle.

解决它的唯一更改(除了确保在所有目标和 Podfile 中一致地设置部署目标之外)是清除我们在 BUNDLE_LOADER 构建设置中列出的值 UI 测试目标。

之前:

BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp";

之后:

BUNDLE_LOADER = "";