Xcode - 调试单元测试目标

时间:2011-04-06 23:57:14

标签: objective-c xcode unit-testing debugging breakpoints

我正在使用OCUnit为我的iPhone应用程序编写测试。 有没有办法调试单元测试并有一个断点来看看发生了什么?

在不能使用断点的情况下编写单元测试非常困难。

5 个答案:

答案 0 :(得分:12)

使用XCode 4.2,(通过在设置项目时选中“包含单元测试”复选框设置SenTestKit单元测试),Product-> Test没有达到我的断点,但是Product-> Perform Action - > Test Without Building似乎可以解决问题。希望这会有所帮助。

答案 1 :(得分:11)

David Gelhar发布的link对于Xcode 3是正确的。

对于Xcode 4,事情要简单得多。编辑当前方案并转到“测试”操作。单击底部的“+”并添加包含要运行的测试的测试包。现在,当您选择产品 - >测试,它将运行那些测试。任何活跃的断点都会像您期望的那样被击中。

答案 2 :(得分:1)

这是一篇博文:Debugging Cocoa application unit tests,其中包含如何执行此操作的说明(至少对于XCode 3;不确定XCode 4)。

答案 3 :(得分:0)

XCode 4中需要注意的另一个问题是,您尚未将要测试的类添加到单元测试目标以及主项目中。它似乎没有必要,它会破坏你打破断点的能力。

运行时,线索将是调试日志中的警告消息。消息将如下所示:

“XXX类在YYY和ZZZ中实施。将使用其中一个。未定义哪一个。”

一旦我删除了单元测试目标警告中提到的类,Xcode就开始点击断点。

您可以通过单击.M文件从目标中删除类,并在“目标成员资格”下的检查器窗口中关闭单元测试目标中的成员资格。

答案 4 :(得分:0)

您还可能不小心禁用了Scheme-> Test-> Info

中的“ Debugger:Debug Executable”选项。

enter image description here