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

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

  • 我遵循以下步骤:

    当我使用-fprofile-arcs编译代码时,生成
  • .gcno
    -ftest-coverage选项并与-lgcov选项链接。
  • 我运行了可执行文件以生成.gcda文件。
  • 我将.gcno和.gcda文件复制到了我拥有我的位置
    源代码。
  • 我从顶层目录中运行了gcovr命令(如下所述)
    其中包含进一步包含.cpp文件的子目录。
  • 生成coverage.html,其中包含有关其他信息
    html报告,但是当我打开它们时它们是空白的。
  • 我已经尝试了在各个位置运行的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
    

    预期结果:
  • 实际结果将在html中包含详细的覆盖率报告
    具有相应的.gcda和.gcno的每个.cpp文件的格式
    对应。
  • 子目录中将存在
  • .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 // contents // Application_name

    ->我在上述命令中进行了以下修改:

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

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

    https://gcovr.com/installation.html

    07-28 04:38