我正在使用OCUnit为我的iPhone应用程序编写测试。 有没有办法调试单元测试并有一个断点来看看发生了什么?
在不能使用断点的情况下编写单元测试非常困难。
答案 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)