0

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

在 mytests.h 中:

#import <SenTestingKit/SenTestingKit.h>

错误是:

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

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

这是怎么回事?XCode 4 似乎没有附带 SenTestingKit.framework。

更新:

此外,当我将旧的 SenTestingKit 框架从 XCode 3 复制到 /Developer/Library/Frameworks 时,它有点构建,但它并没有按我预期的方式工作。虚拟测试旨在失败,但是当我“运行测试”时,我只是打开了正常的可可应用程序文档窗口,并且没有迹象表明我的测试失败了(正如我打算做的那样)。

这很糟糕。我无法让单元测试失败。这对我来说不是通常的情况,你明白的。

4

3 回答 3

4

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

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

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

然后,您的默认测试将编译、链接并失败。

于 2011-10-04T12:21:46.277 回答
1

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

如果您看不到要查找的框架,您可以在项目的构建设置中调整框架外观路径。

于 2011-03-11T03:54:33.503 回答
0

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

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

我的项目

我的项目测试

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

于 2011-05-04T03:12:25.157 回答