但是,我希望能够在测试失败时逐步执行我的应用程序代码,但无法正确配置Xcode(3.2.5).该项目是一个Mac项目,而不是iOS.
我尝试了指令here和here,但执行从未在我设置的断点处停止,无论是在单元测试代码中还是在我的应用程序代码中.在遵循第一组指令后,我设置的断点变为黄色并带有蓝色轮廓,我也不知道这意味着什么.我需要做什么才能完成测试?
更新
我发现另一个页面试图通过向我的主可执行文件添加参数和环境变量来解决这个问题(here),但同样,这些并没有导致执行停止在我的断点处.我还注意到我的测试(大量)日志语句也没有显示在我的调试器控制台中.
我还发现黄色断点意味着在运行时无法找到的代码.这些都在我的测试用例类中,所以这似乎肯定解释了为什么那些没有解雇.
解决方法
基本的想法是告诉gdb以你的bundle作为参数启动otest.您将通过将/ Developer / Tools / otest作为自定义可执行文件添加到Xcode项目中,然后将OCTest包名称作为唯一参数(在“项目”菜单中选择“编辑活动可执行文件”,并在第二个选项卡中添加在顶部框中使用Foo.octest来调试Foo测试).
现在,如果您点击调试按钮,它将立即开始调试您的测试包,并将停止在声明的断点处(如果您点击构建和调试,如果测试未通过则可能无法启动).另请注意,您可能必须将环境变量设置为YES以禁用垃圾回收(在相同“参数”选项卡的底部框中),如果需要,otest将准确告诉您.
如果您执行了上述所有操作并仍无法执行测试代码,则可能是因为它是在关闭调试符号生成的情况下编译的 – 请检查调试版本设置,但很可能是因为测试代码根本没有重新编译.我说很有可能,因为你的日志没有显示在控制台中,NSLog应该在Xcode控制台中写入.手动清理构建和bin文件夹,有时当您更改路径或名称时,最终会加载过时的代码.您可能还想检查文件是否未跳出测试目标(同一个非日志文件中的失败测试?).