【问题标题】:The test runner failed to load the test bundle测试运行程序未能加载测试包
【发布时间】:2019-07-19 23:50:44
【问题描述】:

我正在开发一个可可触摸框架,我正在使用 CocoaPods 导入“RealmSwift”。项目成功构建,但测试无法加载。 我收到以下错误:

xctest (97035) 遇到错误(提前意外退出,操作 从未完成引导 - 不会尝试重新启动。 (潜在错误:测试运行程序未能加载测试包。 由于某些其他原因(例如问题)无法加载可执行文件 使用它依赖的库或代码签名/权利 不匹配。))

崩溃日志:

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项目中成功运行,问题仅出现在可可触摸框架中。

我的 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

【问题讨论】:

  • 您是面对所有测试用例还是只有一个测试用例有问题?
  • @Satyam 测试包加载失败。所以没有测试任何病例。
  • 你找到解决办法了吗?
  • @iKushal 是的,请检查我的回答。

标签: ios xcode realm cocoapods xctest


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

    这是对我有用的 podfile:

    platform :ios, '11.0'
    
    def shared
      use_frameworks!
      pod 'RealmSwift', '~> 3.18.0'
    end
    
    target 'Framework' do
      shared
    end
    
    target 'FrameworkTests' do
      shared
    end
    

    【讨论】:

      【解决方案3】:

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

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

      您没有为 pod 中的测试目标安装 RealmSwift 库,仅适用于您的应用程序,从日志中可以看出:

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

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

      【讨论】:

      • 我已经试过了,但是没有用。请再次检查我的问题以获取可以重现问题的示例。
      • 你为什么要inherit! :search_paths?在这种情况下,不需要这样做。尝试删除它和pod update
      【解决方案4】:

      类似的修改帮助了我。

      use_frameworks!
      
      target 'Framework' do
      
        pod 'RealmSwift', '~> 3.13.1'
      
      end
      
      target 'FrameworkTests' do
      
        pod 'RealmSwift', '~> 3.13.1'
      
      end
      

      随意使用“def”link

      【讨论】:

        猜你喜欢
        • 2011-01-20
        • 1970-01-01
        • 2021-10-25
        • 2017-10-31
        • 2016-09-02
        • 2020-03-25
        • 1970-01-01
        • 2022-10-05
        • 2011-01-03
        相关资源
        最近更新 更多