升级到Xcode 5.1后,命令行中的运行单元测试失败

 紫陌红尘一笑_423 发布于 2023-01-18 17:44

升级到Xcode 5.1后,从命令行运行的单元测试停止工作.

这是我跑步时会发生的事情 xcodebuild test -workspace MyApp.xcworkspace -scheme MyApp -sdk iphonesimulator -configuration Debug

[...]
2014-03-11 15:32:08.392 Test Host[67583:907] Error loading /Users/0xced/Library/Developer/Xcode/DerivedData/MyApp-cdhjwjcbamuhpvfislepygilkusg/Build/Products/Debug-iphonesimulator/MyApp Tests.xctest/MyApp Tests:  dlopen(/Users/0xced/Library/Developer/Xcode/DerivedData/MyApp-cdhjwjcbamuhpvfislepygilkusg/Build/Products/Debug-iphonesimulator/MyApp Tests.xctest/MyApp Tests, 262): Library not loaded: /Developer/Library/Frameworks/XCTest.framework/XCTest
  Referenced from: /Users/0xced/Library/Developer/Xcode/DerivedData/MyApp-cdhjwjcbamuhpvfislepygilkusg/Build/Products/Debug-iphonesimulator/MyApp Tests.xctest/MyApp Tests
  Reason: image not found
IDEBundleInjection.c: Error loading bundle '/Users/0xced/Library/Developer/Xcode/DerivedData/MyApp-cdhjwjcbamuhpvfislepygilkusg/Build/Products/Debug-iphonesimulator/MyApp Tests.xctest'
** TEST SUCCEEDED **

虽然xcodebuild报告**TEST SUCCEEDED**,但测试显然没有运行.

我该如何解决这个错误?

1 个回答
  • 该错误表示/Developer/Library/Frameworks/XCTest.framework/XCTest找不到.因此,为了解决这个问题,我使用以下脚本向我的单元测试目标添加了一个运行脚本阶段:

    install_name_tool -change "/Developer/Library/Frameworks/XCTest.framework/XCTest" "${SDKROOT}/Developer/Library/Frameworks/XCTest.framework/XCTest" "${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}"
    

    它告诉单元测试包从当前SDK而不是/Developer从不存在的目录加载XCTest框架.

    令人惊讶的是,这个修复只在我的机器上需要,但我们的CI服务器上不需要.我的机器和CI服务器之间的差异分别包括:

    几个Xcode版本(4.6.3 + 5.0.2 + 5.1)仅限Xcode 5.1

    几个iOS模拟器(6.1 + 7.1)与iOS 7.1模拟器相比

    2023-01-18 17:47 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有