我是否必须做一些事情才能让OCunit测试与XCode 4一起编译?

时间:2011-03-11 03:34:35

标签: xcode xcode4 ocunit

我今天刚刚安装了XCode 4(使用Apple mac app store),我创建了一个新的Mac OS应用程序,并尝试切换到测试模式,并构建它为我生成的测试框架代码。它在这里失败了:

在mytests.h中:

#import <SenTestingKit/SenTestingKit.h>

错误是:

file://..mytests.h: error: Lexical or Preprocessor Issue: 'SenTestingKit/SenTestingKit.h' file not found

现在,当我使用终端中的locate查找SenTestingKit.h时,我注意到它存在于/ Developer-old / Library / Frameworks文件夹下(这是XCode 4安装程序将我/ Developer文件夹重命名为)。没有新的/ Developer / Library / Frameworks。而且我似乎无法在我的磁盘上找到SenTestingKit.framework,除了开发人员之外。

怎么了?似乎SenTestingKit.framework不随XCode 4一起提供。

更新

此外,当我将旧的SenTestingKit框架从XCode 3复制到/ Developer / Library / Frameworks时,它构建了一些版本,但它并不像我期望的那样工作。虚拟测试只是失败,但是当我“运行测试”时,我只是打开正常的cocoa app文档窗口,并没有迹象表明我的测试失败了(我打算这样做)。

这很糟糕。我无法对FAIL进行单元测试。你明白,这不是我常见的情况。

3 个答案:

答案 0 :(得分:4)

您可能会发现原因是因为您已将Xcode 4安装到/ Xcode 4.x /或类似目录中。该空间导致问题,因为-I路径是“Xcode”和“4.x / Library / Frameworks”。

要解决此问题,您需要做的是选择您的测试目标,并在其构建设置下去查找框架搜索路径,并在两个参数周围加上引号,这样您就拥有:

“$(SDKROOT)/ Developer / Library / Frameworks”和“$(DEVELOPER_LIBRARY_DIR)/ Frameworks”

然后你的默认测试将编译,链接和失败。

答案 1 :(得分:1)

您可能需要将框架导入项目中。否则,将无法识别头文件。

如果您无法看到所需的框架,可以在项目的构建设置中调整框架外观路径。

答案 2 :(得分:0)

当您在与主代码相同的项目中构建单元测试时,请确保XCode 4没有自动将mytests.m文件连接到主代码的“编译源”部分。

例如,如果我们的项目中有两个目标:

MyProject的

MyProjectTests

检查MyProject的Build Phases,看看XCode是否将mytests.m添加到“Compile Sources”手风琴中。这将导致构建失败,因为SenTest未包含在主项目中。