2

我正在尝试在 iphone 上执行一些单元测试,但由于某种原因,我无法让它构建可执行文件

我已经从 Standford 的讲座幻灯片中下载了 TestMyApp,它可以完美地编译和运行。我创建了一个测试项目,甚至使用了斯坦福示例中的测试代码,但由于某种原因,每个设置看起来都相同,我得到以下预编译器错误:

/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:13:26:错误:AppKit/AppKit.h:没有这样的文件或目录/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h :14:30:错误:CoreData/CoreData.h:没有这样的文件或目录

注意>唯一需要注意的一点是,我在 PPC 上的“调整”xcode 安装上运行它,而不是英特尔 mac

4

6 回答 6

3

如果您右键单击您的单元测试目标并选择“获取信息”菜单,您将看到您的目标选项。在窗格的底部,您将看到一个名为“用户定义”的部分:删除包含 cocoa.h 路径的条目。我不记得这个条目的名称,因为我删除了它,但这解决了我之前遇到的同样问题。

我还将 Base SDK 更改为 Device - iPhone OS 2.2 和其他链接器标志为 -framework Foundation -framework SentestingKit

于 2008-12-23T17:28:09.173 回答
1

AppKit 不适用于 iPhone 开发。看起来您下载了一个桌面 mac 应用程序项目。iPhone dev 使用 UIKit 代替 AppKit。CoreData 也不适用于 iPhone 开发人员。

尝试设置一个桌面可可应用程序,这些框架和对象应该可用。

对于 iPhone 应用程序的单元测试,Mac 版 Google 工具箱非常有用。

GTM iPhone 文档

于 2008-12-15T17:21:34.470 回答
1

您可以在 Sen:te 网站上找到说明和示例项目:http ://www.sente.ch/s/?p=535&lang=en

于 2009-01-14T23:16:05.430 回答
1

我不得不在“用户定义部分”中删除 GCC_PREFIX_HEADER 的值。它正在使用 $(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h

一旦我删除它,我就解决了这个问题。

于 2009-04-19T18:09:14.913 回答
0

您是否安装了 iPhone SDK 2.2?如果不使用 iPhone 的 GTM,OCunit 不能与 iPhone SDK < 2.2 一起使用。

我也一直在使用斯坦福示例代码。当我尝试建立自己的项目时,我无法让我的测试运行。因此,我采用了斯坦福示例项目并重命名了所有内容。现在 OCunit 测试工作正常。

于 2008-12-15T19:11:31.893 回答
0

不要使用 Sen:te 东西来测试任何使用 UIKit 框架的类。它将失败,代码为 139。使用 Google 的 GTM。

于 2009-04-03T08:49:52.893 回答