首页 > 解决方案 > gcovr 5.0 --html-details 报告中没有颜色

问题描述

我一直在使用该gcovr模块生成月度报告。我在 docker 上工作,所以每次我都使用我的 Linux 容器上的命令下载gcovr模块。pip3最近下载模块后发现版本gcovr已经从4.2to升级了5.0,之前的命令都不能正常使用了。

用于生成报告的早期命令:

gcovr -g --keep --html-details --html-title "TITLE" --html-medium-threshold 60 --html-high-threshold 80 --gcov-ignore-parse-errors >> report.html

使用gcovr 5.0上述命令时,会引发以下错误:

(ERROR) a named output must be given,if the option --html-details is used

然后,根据上述错误的建议,我使用了以下命令:

gcovr -g --keep --html-details -o report.html --html-title "TITLE" --html-medium-threshold 60 --html-high-threshold 80 --gcov-ignore-parse-errors

但是,我相信上面的命令并不完全正确,并且使用上面的命令,生成的报告格式不正确,并且*.css在相应的文件夹中生成了很多不需要的文件。

如下图所示,颜色没有按照“图例”中定义的百分比突出显示:

gcovr 5.0 报告:

标签: code-coveragegcovgcovr

解决方案


报告格式为--html-details每个源文件生成一个 HTML 文件和一个索引文件。从 gcovr 5.0 开始,它们共享的 CSS 存储为单独的文件。这对于某些 Web 服务器的安全配置很重要。

  • 当您复制或移动 html-details 报告时,您必须复制所有相关文件:所有.html.css文件。

  • --html-self-contained您可以使用该选项强制将 CSS 嵌入到每个 HTML 文件中。例如,这使得通过电子邮件发送单个报告文件成为可能,但链接不起作用。这个选项是作为gcovr 5.0 更新日志的一部分宣布的。

  • 您似乎只对索引文件感兴趣,而不对源代码级别的详细信息感兴趣。如果是这样,请考虑使用--html默认生成单个文件的报告格式。

补充说明:

  • 如果你想强制一个特定的 gcovr 版本,你可以告诉 pip 到 eg pip install 'gcovr ~= 4.2'~=版本说明符选择最新的兼容版本,从而避免意外更改。
  • 所有输出格式都可以直接取输出名称。而不是--html -o foo.html你可以写--html foo.html.
  • 该选项--gcov-ignore-parse-errors仅用作临时创可贴,以在您更新到对 .gcov 报告格式进行不兼容更改的 GCC 版本时保持 CI 管道运行。如果没有这个选项有错误,那是 gcovr 中的一个错误,应该报告。使用此选项,您仍会收到报告,但报告可能不正确。
  • gcovr 选项-g/--use-gcov-files很容易误用。除非您使用 gcov 选项-l/ ,否则您几乎肯定会得到错误的结果--long-file-names

推荐阅读