【问题标题】:Code coverage files not being generated on OSX LionOSX Lion 上未生成代码覆盖率文件
【发布时间】:2012-04-11 10:50:13
【问题描述】:

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

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

【问题讨论】:

  • 您的测试是否在 Lion 上使用覆盖配置成功执行?

标签: xcode ios5 osx-lion ocunit coverstory


【解决方案1】:

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

-fprofile-arcs -ftest-coverage

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

将“Generate Test Coverage Files”和“Instrument Program Flow”都设置为YES后生成gcno文件。

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

另外,我发现将 Generate Profiling Code 设置为 YES 也会导致生成 gcda 文件。

【讨论】:

    【解决方案2】:

    确保为您的代码和测试设置了以下构建设置:

    GCC_PREPROCESSOR_DEFINITIONS = GCOV_ENABLED=1

    GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES

    GCC_GENERATE_TEST_COVERAGE_FILES = YES

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-06
      • 2014-03-21
      • 2019-06-20
      • 1970-01-01
      • 2020-04-25
      • 2018-01-11
      • 1970-01-01
      相关资源
      最近更新 更多