【问题标题】:XCTest - "Test failed"XCTest - “测试失败”
【发布时间】:2013-10-23 02:55:10
【问题描述】:

我正在尝试向 Mac 应用程序添加测试。 我正在使用 XCTest 框架。 当我运行测试(cmd + U)时,我收到“测试失败”并在控制台中看到:

2013-10-15 13:22:56.354 8tracks Radio[40560:303] Error loading /Users/victor/Library/Developer/Xcode/DerivedData/Musica-dhxbqwburbddtietormguodcwoqt/Build/Products/Test/MusicaTests.octest/Contents/MacOS/MusicaTests:  dlopen(/Users/victor/Library/Developer/Xcode/DerivedData/Musica-dhxbqwburbddtietormguodcwoqt/Build/Products/Test/MusicaTests.octest/Contents/MacOS/MusicaTests, 262): no suitable image found.  Did find:
/Users/victor/Library/Developer/Xcode/DerivedData/Musica-dhxbqwburbddtietormguodcwoqt/Build/Products/Test/MusicaTests.octest/Contents/MacOS/MusicaTests: open() failed with errno=1IDEBundleInjection.c: Error loading bundle '/Users/victor/Library/Developer/Xcode/DerivedData/Musica-dhxbqwburbddtietormguodcwoqt/Build/Products/Test/MusicaTests.octest'

有什么想法吗? 干杯!

【问题讨论】:

    标签: xcode macos xctest


    【解决方案1】:

    您需要禁用代码签名才能运行单元测试。 This page 解释了如何创建测试配置,以便您的调试和发布应用程序经过代码签名,但您的单元测试没有。更改配置后不要忘记进行全面清理。

    【讨论】:

    • +1 绝对正确,但前提是您得到“errno 1”(不允许操作)。为了让我的沙盒应用在单元测试期间以非沙盒模式运行,我还有很多工作要做。
    • 这解决了我在 10.9.2 上使用 Xcode 5.1 的问题
    • 这对我有用。我还使用RB App Checker Lite 来检查我的非测试版本是否仍然正确签名。
    • Xcode 6.1 似乎要求对测试目标和应用容器都进行签名。
    • 这个答案现在是错误的。 Xcode 6.1+ 要求两者都进行代码签名。
    【解决方案2】:

    在尝试向现有 ios 项目添加测试时,我遇到了同样的“找不到合适的图像”问题。尝试转到测试目标的构建设置并将“仅构建活动架构”设置为“否”。这解决了我的问题。

    另外,请确保两个目标的架构相同,否则会出现奇怪的链接器错误。

    【讨论】:

    • 当我将应用程序测试从 SenTests 转换为 XCTest 时,我遇到了同样的问题。逻辑测试没问题。节省了很多时间。
    【解决方案3】:

    我遇到了不同的问题,但看到的是相同的日志。因为问题是测试目标的部署目标高于我尝试使用的模拟器的iOS版本。

    我希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-19
      • 2016-07-05
      • 1970-01-01
      • 2015-06-14
      • 2015-05-31
      • 2014-02-07
      • 2021-12-18
      相关资源
      最近更新 更多