运行 gcovr 命令后,无法生成代码覆盖率,也无法从子目录中删除 .gcda

Unable to generate code coverage and also .gcda deleted from sub directories after running gcovr command

我面临以下代码覆盖问题:

  1. 没有为 .cpp 文件生成详细的 html 文件 有 .gcno 和 .gcda 对应项。
  2. gcda 文件在 运行 gcovr 命令后自动删除。

我遵循了以下步骤:

  1. .gcno 是在我使用 -fprofile-arcs 编译我的代码时生成的 -ftest-coverage 选项并与 -lgcov 选项链接。
  2. 我运行生成.gcda文件的可执行文件。
  3. 我将 .gcno 和 .gcda 文件复制到我的位置 源代码。
  4. I 运行 来自顶层目录的 gcovr 命令(如下所述) 其子目录进一步包含 .cpp 文件。
  5. 生成了coverage.html,里面有其他的信息 html 报告,但当我打开它们时它们是空白的。
  6. 我已经在不同的位置尝试了 gcovr 运行,例如 根目录或子目录。

gcno 和 .gcda 文件所在的目录是 :: D:\RTC_Latest_GTEST\RTC_21_11_18\software\output_gtest\Application\contents\Application_name

执行 gcovr 命令的目录是 :: D:\RTC_Latest_GTEST\RTC_21_11_18\software\Application\contents\Application_name

目前我是 运行 来自 Application_name 文件夹的 gcovr 命令。

我 运行 以下命令为我的代码生成深度 html 报告:

python.exe c:\Python27\gcovr --exclude-unreachable-branches -b -r . -d --html --html-details -o coverage.html

预期结果:

  1. 实际结果将在html中有详细的覆盖率报告 每个具有相应 .gcda 和 .gcno 的 .cpp 文件的格式 对方.
  2. .gcda 和 .gcno 文件将出现在子目录中 在 运行 gcovr 命令之后。

Generated HTML coverage report

-->.gcda 文件由于 -d 选项而被删除,正如@amon 在评论中所说的那样。

-->下面是我用来生成覆盖率报告的命令,我是 运行 这个来自 Application_name 目录的命令::

gcovr -r .. --html --html-details -o coverage.html --object-directory=../../../.. //output_gtest//申请//内容//Application_name

-->我在上面提到的命令中做了如下修改:

1)--object-directory ,我在这里添加了我的 .gcda 和 .gcno 文件所在的路径。

2) 我使用的是过时版本的 gcovr,因此我无法生成覆盖率报告,因此我更新了我的 gcovr 版本,下面提到了相同的步骤 link ::

https://gcovr.com/installation.html