Gcovr为0个文件生成覆盖数据

时间:2014-03-28 11:55:15

标签: xcode5 code-coverage gcovr

我正在为iOS应用程序设置代码覆盖率。我正在使用XCode 5.0.2和gcovr 3.1来测试和执行iOS 7设备的代码覆盖。我最初遇到.gcda文件生成问题,但我关注this博客并解决了问题。

我已将“生成测试覆盖文件”设置为“是”,“仪器程序流程”仅设置为“是”。我还在'Other C Flags'中为Debug模块设置了-fprofile-arcs -ftest-coverage。当应用程序终止时,我在应用程序代码中添加了__gcov_flush()

现在.gcda文件正在生成而没有问题。

然后我将其复制到我的主目录中的工作区。从工作区,我尝试为应用程序运行代码覆盖。我从命令行执行gcovr命令,为我拥有的252 gdca文件传递–object-directorygcov命令。最后我得到了这个输出:

Gathered coverage data for 0 files

请帮我解决问题。我花了很多时间浏览类似的问题,但没有一个解决方案正在解决。

4 个答案:

答案 0 :(得分:2)

我没有尝试将.gcda文件复制到别处,但是如果我cd到默认情况下生成gcda文件的目录,那么运行没有参数的gcovr,我得到有效的结果。也许这就是你需要做的事情?

答案 1 :(得分:0)

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 :(得分:0)

对于Xcode Coverage结果0文件,您应该使用.gcda和.gcno文件指定object-directory,并且您的根路径应包含源文件(.m .h) 如果您有一个文件夹,例如“Myproject”,并且您的所有源代码都在该文件夹中,则命令如下所示:

gcovr --root =“Myproject /。” --object-directory =“Build / Intermediates / /../ / Objects-normal / x86-64 /”

答案 3 :(得分:0)

当我尝试运行 gcovr 时遇到了这个问题,但启用了不同的(与编译)gcc 版本。 在运行 gcovr 时,请尝试在编译项目时检查您的 gcc 版本是否与 gcc 版本相同。