2012-04-11 72 views
3

我试图获得我的单元测试(Mac OS X Lion 10.7(11A2061)上的Xcode 4.2.1(4D502))的代码覆盖率,但以某种方式.gcda文件不要创建。我可以在单元测试目标的.../Objects-normal/i386文件夹中看到.d和.o文件,但是单元测试的文件缺少gcno/gcda文件,因此我无法生成覆盖范围什么是测试的统计数据。未在OSX Lion上生成代码覆盖率文件

在主目标上,我确实看到了每个文件的.d,.o和.gcno文件。

所以,我相信我已经正确设置了项目设置,但是对于OS X Lion来说真的缺少了一些“小”的东西。我已经尝试了http://code.google.com/p/coverstory/wiki/UsingCoverstory中提到的步骤,但似乎没有解决我的问题。

注意:我能够在Snow Leopard上使用它,并使用CoverStory查看覆盖率统计信息!

在这方面的任何解决方案/方向将非常有帮助。谢谢!!

+0

您的测试是否成功在Lion上进行覆盖配置? – 2012-04-19 02:59:18

回答

0

确保下面的生成设置到位为您的代码和您的测试:

GCC_PREPROCESSOR_DEFINITIONS = GCOV_ENABLED=1

GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES

GCC_GENERATE_TEST_COVERAGE_FILES = YES

建筑/运行测试应该创建缺少gcda文件。我遇到了这个问题,我有一个包含上面的xcconfig文件模板。您不必使用最新版本的Xcode链接到gcov库。

4

我错过了gcda文件,但在某些网站上找到解决方案。您需要添加这些标志:

-fprofile-arcs -ftest-coverage 

更改为“其他C标志”。运行测试后,gcda文件存在。

将“生成测试覆盖率文件”和“仪器程序流程”都设置为YES后生成gcno文件。

我正在使用Xcode 4.3.2和llvm编译器。

或者,我发现将生成分析代码设置为YES也会导致生成gcda文件。