1

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

  1. 对于具有 .gcno 和 .gcda 对应文件的 .cpp 文件,不会生成详细的 html 文件。
  2. gcda 文件在运行 gcovr 命令后自动被删除。

我按照以下步骤操作:

  1. 当我使用 -fprofile-arcs -ftest-coverage 选项编译我的代码并与 -lgcov 选项链接时,生成了 .gcno。
  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. 实际结果将为每个具有对应 .gcda 和 .gcno 对应文件的 .cpp 文件提供 html 格式的详细覆盖率报告。
  2. 运行 gcovr 命令后,.gcda 和 .gcno 文件将出现在子目录中。

生成的 HTML 覆盖率报告

4

1 回答 1

0

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

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

gcovr -r .. --html --html-details -o coverage.html --object-directory=../../../..//output_gtest//Application//contents//Application_name

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

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

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

https://gcovr.com/installation.html

于 2019-01-23T10:56:17.830 回答