我正在使用 Xcode 3.2 在 10.6 上,使用预装的 gcov 和默认的 GCC 编译器(版本均为 4.2.1)。我创建了一个依赖 Cocoa 单元测试框架的程序包,并按照苹果文档 设置了 gcov 检测的构建配置,基于没有启用任何编译器优化的 Debug 配置。
当我使用这个“Gcov-instrumented”配置构建测试程序包时,应用程序启动并注入和运行测试。此外,覆盖率统计文件生成在以下位置:
build/<AppTarget>.build/Gcov-instrumented/<AppTarget>.build/Objects-normal/x86_64/<object>.gcda
build/<AppTarget>.build/Gcov-instrumented/<AppTarget>.build/Objects-normal/x86_64/<object>.gcno
到目前为止都很好。我知道测试确实已经运行,因为如果我插入失败,则测试套件会按预期失败。不幸的是,gcov 报告说没有一行对象被测试覆盖!每一行都报告为 0 覆盖率。我已经在这里和苹果邮件列表档案中搜索过,但找不到任何类似的问题。我想我肯定漏掉了什么 - 但是它是什么呢?
--gcov-tool /usr/bin/gcov-4.0
来覆盖默认值4.2,该值指向/usr/bin/gcov
。我窥视了CoverStory的源代码,它正在使用此符号链接。http://code.google.com/p/coverstory/source/browse/trunk/CoverStoryDocument.m#131 即使它不在首选项对话框中,如果他们添加用户默认设置,那就太好了... - Quinn Taylor--gcov-tool /usr/bin/gcov-4.0
标志?我已经尝试将其设置为链接器标志,但是当我编译时,Xcode会抛出一个错误。当我尝试使用此标志从命令行进行gcc编译时,它也会抛出一个错误:ld: warning: in /usr/bin/gcov-4.0, missing required architecture x86_64 in file
。 - John Gallagher