OSX Lion上未生成代码覆盖率文件

时间:2012-04-11 10:50:14

标签: xcode ios5 osx-lion ocunit coverstory

我正在尝试获取我的单元测试的代码覆盖率(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查看覆盖率统计数据!!

这方面的任何解决方案/方向都非常有用。谢谢!

2 个答案:

答案 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库。