我最近一直在学习如何使用GHUnit for iPhone编写单元测试。但是,我不知道如何通过xCode 4设置代码覆盖范围以与此一起使用。
googletube在(这方面)没有特别帮助。
最佳答案
我在this blog article中介绍了如何使用GHUnit进行代码覆盖(免责声明:我是作者)
简而言之,对于GHUnit,您需要:
在Xcode中,在项目的测试目标中启用两个生成设置“ Generate Test Coverage Files”和“ Instrument Program Flow”
将fopen $ UNIX2003和fwrite $ UNIX2003函数的代码添加到测试目标的main.m文件中,而不是在AppDelegate中。这是我的main.m文件的样子:
#import <UIKit/UIKit.h>
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, @"GHUnitIOSAppDelegate");
}
}
FILE *fopen$UNIX2003(const char *filename, const char *mode) {
return fopen(filename, mode);
}
size_t fwrite$UNIX2003(const void *ptr, size_t size, size_t nitems, FILE *stream) {
return fwrite(ptr, size, nitems, stream);
}
编辑您的测试目标.plist并添加值为“是”的属性“应用程序未在后台运行”。请注意,这很有用,因为仅在应用程序退出时才写入coverage文件。
有关更多详细的说明/屏幕截图,请参见上面的博客文章。本文更加详尽,因为它还介绍了Jenkins集成和OCUnit。