code-coverage - gcovr 5.0 --html-details 报告中没有颜色
问题描述
我一直在使用该gcovr
模块生成月度报告。我在 docker 上工作,所以每次我都使用我的 Linux 容器上的命令下载gcovr
模块。pip3
最近下载模块后发现版本gcovr
已经从4.2
to升级了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
在相应的文件夹中生成了很多不需要的文件。
如下图所示,颜色没有按照“图例”中定义的百分比突出显示:
解决方案
报告格式为--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
。
推荐阅读
- npm - 为什么 NPM 在我的 tarball 中发布缓存
- opencl - 在 OpenCL 中,是否可以使用内核参数更新 GPU 上分配的内存位置?
- powershell - SQLCMD powershell 脚本,其数据取自无法输出预期数字的文件
- javascript - 如何使用 Bootstrap 在此单元格上放置徽章?
- unity3d - 适用于移动设备的 Unity 相机控件
- linux - 为什么 VS-Code 调试找不到共享库
- php - 如何通过单击woocommerce表格中的复选框将多个产品添加到购物车
- excel - 基于空白单元格删除非连续范围
- c# - setsimplecolumn 不使用 C# 中的 itextsharp 5 将文本定位到 PDF 中的给定坐标
- sql - SQL 查询以动态追加具有计算值的列