iPhone上的GHUnit代码覆盖率



我最近一直在学习如何使用GHUnit为iPhone编写单元测试。然而,我不知道如何通过xCode 4设置代码覆盖来处理这个问题。

googletube(不知怎么的)在这件事上并没有特别的帮助。

我在这篇博客文章中介绍了如何使用GHUnit获得代码覆盖率(免责声明:我是作者)

简单总结一下,对于GHUnit,您需要:

  • 在Xcode
  • 中,在项目的测试目标中启用两个构建设置"生成测试覆盖文件"one_answers"Instrument Program Flow"
  • 在main中增加了fopen$UNIX2003和fwrite$UNIX2003函数的代码。测试目标的m文件,而不是在AppDelegate中。这就是我的主要。

    #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并添加属性'应用程序不运行在后台'与值' YES '。请注意,这很有用,因为覆盖率文件只在应用程序退出时写入。

有关更详细的解释/截图,请参阅上面的博客文章。这篇文章更加详尽,因为它还涵盖了Jenkins集成和OCUnit。

这里有一个答案,声称已经在XCode 4中获得了代码覆盖,尽管我还没有验证它:

代码覆盖率不显示使用Xcode + gcov的结果

相关内容

  • 没有找到相关文章

最新更新