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

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

本文关键字:子目录 gcda 删除 命令 gcovr 运行 代码覆盖率      更新时间:2023-10-16

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

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

我遵循了以下步骤:

  1. .gcno是在我使用-fprofile arcs编译代码时生成的-ftest覆盖选项并与-lgcov选项链接
  2. 我运行了可执行文件来生成.gcda文件
  3. 我将.gcno和.gcda文件复制到了我的源代码
  4. 我从顶部目录运行了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命令之后

生成HTML覆盖率报告

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

-->以下是我用于生成覆盖率报告的命令,我正在Application_name目录中运行此命令::

gcovr-r--html--html details-o coverage.html--对象目录=../../..///output_gtest//应用程序//内容//应用程序名称

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

1) --对象目录,在这里我添加了.gcda和.gcno文件所在的路径。

2) 我使用的是过时版本的gcovr,因为我无法生成覆盖率报告,所以我更新了我的gcovr版本。以下链接中提到了相同的步骤::

https://gcovr.com/installation.html