我正在尝试获取我的单元测试的代码覆盖率(Mac OS X Lion 10.7(11A2061)上的Xcode 4.2.1(4D502)),但不知何论.gcda文件无法创建。我可以在单元测试目标的... / Objects-normal / i386文件夹中看到.d和.o文件,但是单元测试的文件缺少gcno / gcda文件,因此我无法生成覆盖范围正在测试什么的统计数据。
在主目标上,我确实看到每个文件的.d,.o和.gcno文件。
所以,我相信我已经正确设置了项目设置,但OS X Lion确实缺少“小”的东西。我已经尝试了http://code.google.com/p/coverstory/wiki/UsingCoverstory中提到的步骤,但似乎没有解决我的问题。
注意:我能够在Snow Leopard上使用它并使用CoverStory查看覆盖率统计数据!!
这方面的任何解决方案/方向都非常有用。谢谢!
答案 0 :(得分:4)
我错过了gcda文件,但在某些网站上找到了解决方案。您需要添加这些标志:
-fprofile-arcs -ftest-coverage
到"其他C标志"。运行测试后,会出现gcda文件。
在设置"生成测试覆盖率文件后生成gcno文件"和"仪器程序流程"是的。
我正在使用Xcode 4.3.2和llvm编译器。
或者,我发现将Generate Profiling Code设置为YES也会导致生成gcda文件。
答案 1 :(得分:0)
确保您的代码和测试具有以下构建设置:
GCC_PREPROCESSOR_DEFINITIONS = GCOV_ENABLED=1
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES
GCC_GENERATE_TEST_COVERAGE_FILES = YES
构建/运行测试应该创建缺少的gcda文件。我遇到了这个问题,我有一个包含上述内容的xcconfig文件模板。您不必使用最新版本的Xcode链接gcov库。