从命令行运行Xcode单元测试时出错

时间:2014-02-21 16:34:07

标签: ios xcode unit-testing jenkins

我正在尝试通过命令行运行我的Xcode单元测试,所以我最终可以将它连接到Jenkins for CI。工作区包含2个项目:

CommonProject(用于多个应用的​​共享库)

MainProject

MainProject使用CommonProject中的库,因此存在依赖性。每个项目都有自己独立的xcodeproj文件。

所以我需要运行与MainProject相关的单元测试。我使用此命令从主项目目录中的终端运行单元测试:

xcodebuild test -scheme MainProject -configuration Debug -sdk iphonesimulator7.0 -destination OS=7.0,name="iPad"

我收到以下错误。

ld: warning: directory not found for option '-L/development/MainProject/../../../../Library/Developer/Xcode/DerivedData/MainProject-frbbgalqmolpaxcdmzssejnssluu/Build/Products/Debug-iphoneos'
ld: warning: directory not found for option '-F/development/MainProject/../../../../Library/Developer/Xcode/DerivedData/DTCoreText-fgbvjplplkeyyghcvrfbmvoetoiq/Build/Products/Debug-iphoneos'

ld: library not found for -lCommonProject
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** TEST FAILED **

The following build commands failed:
Ld /Library/Developer/Xcode/DerivedData/MainProject-bxpugeyjdgrcfcgxxpttwlgmfrma/Build/Products/Debug-iphonesimulator/MainProject.app/MainProject normal i386

由于单元测试需要运行公共项目,因此它们可能无法找到所需的文件,因为它们位于单独的目录中。有没有人以前遇到过这个问题,或者有什么想法可以解决它?

1 个答案:

答案 0 :(得分:1)

我以前使用过此问题,解决方法是确保生成的库文件与project.app文件位于同一位置。鉴于此,您需要将CONFIGURATION_BUILD_DIR指向一个公共位置。您可以使用下面的参数来完成此任务。

xcodebuild test -scheme myScheme -configuration Debug -sdk iphonesimulator7.0 CONFIGURATION_BUILD_DIR=$(PWD)/build