iPhone上的单元测试无法构建

时间:2008-12-15 17:07:24

标签: iphone objective-c unit-testing xcode

我正在尝试在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:没有这样的   文件或目录

N.B>唯一需要注意的是,我是在PPC而非英特尔Mac上的“调整”xcode安装上运行它

6 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

尝试设置Desktop cocoa应用程序,这些框架和对象应该可用。

对于iPhone应用的单元测试,Google Toolbox for mac很有用。

GTM iPhone docs

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

您是否安装了iPhone SDK 2.2?不使用适用于iPhone的GTM,OCunit不适用于iPhone SDK< 2.2。

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

答案 5 :(得分:0)

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