Xcode 7 生成 GCOV
Posted
技术标签:
【中文标题】Xcode 7 生成 GCOV【英文标题】:Xcode 7 generating GCOV 【发布时间】:2016-01-22 02:17:31 【问题描述】:所以 Xcode 7 中的热门新功能是集成在 XCode 中的代码覆盖 - 耶!有了这个新功能,Apple 的新代码覆盖率格式.profdata
也随之而来。
我们需要在 Cobertura 报告中显示代码覆盖率报告(在 Jenkins 中加载)。目前无法将.profdata
转换为 Cobertura XML 报告 (it is on its way however)。
在那之前,我们需要依赖“旧”的 gcov。由于某些未知原因,XCode 7 生成 .gcno 和 .gcda,但是当您让 gcovr
创建 Cobertura 报告时,它显示所有文件的覆盖率为 0%(我们肯定有一些覆盖率)。
我们尝试返回到 XCode 6.4,生成的 gcov 文件在运行 gcovr
时显示正确的覆盖率。
有人遇到同样的问题吗?任何可能的解决方案?
【问题讨论】:
如果您想使用托管服务:github.com/codecov/example-swift(Slather 也是一个选项github.com/venmo/slather/pull/99) 你发现了吗? 【参考方案1】:gcovr 应该从 .gcda 和 .gcno 文件所在的文件夹中执行。根路径是源文件(.c 或 .cpp)所在的文件夹。
这样,命令看起来如下所示。
rr-mac:gcdaFolder$ gcovr -r /path_to_C_sourceFiles/ .
对于输出 html 文件下面的命令有效
rr-mac:gcdaFolder$ gcovr --html -o Filename_rp.html -r /path_to_C_sourceFiles/ .
注意:末尾的点(.)是强制性的
【讨论】:
【参考方案2】:在目标的构建设置中设置下一个值:
Generate Legacy Test Coverage Data = YES
Instrument Program Flow = YES
Enable Code Coverage Support = NO
【讨论】:
你为什么不加解释地拒绝投票?它对我有用。以上是关于Xcode 7 生成 GCOV的主要内容,如果未能解决你的问题,请参考以下文章