You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Gcov 6.0+Ceedling 0.31.1生成空白HTML报告问题求助

解决Ceedling + gcov生成空白HTML覆盖率报告的问题

核心问题分析

空白报告的直接原因是gcovr没有匹配到任何源文件,问题出在report_include的正则表达式配置上:

  • 你当前使用的^..Code/Src/*是错误的正则写法:^锚定路径开头,但..在正则中表示匹配任意两个字符(而非路径中的上级目录),*是正则量词(匹配前面的/零次或多次),完全无法正确匹配你的源文件路径。
  • 之前的..Code/*能工作是误打误撞,本质也是不符合正则规则的写法,后续环境或gcovr版本变化后就失效了。

修复方案

方案1:使用正则表达式(匹配准确路径)

如果你的源文件路径相对于Ceedling工作目录是../Code/Src/开头,修正正则表达式(注意转义路径中的.,避免被正则解释为任意字符):

:gcov:
  :reports:
  - HtmlDetailed
:gcovr:
  :html_medium_threshold: 75
  :html_high_threshold: 90
  :report_include: "^\\.\\./Code/Src/.*"

方案2:使用Shell风格通配符(更直观)

改用report_include_glob配置(对应gcovr的--include-glob选项),用你熟悉的通配符语法匹配路径:

:gcov:
  :reports:
  - HtmlDetailed
:gcovr:
  :html_medium_threshold: 75
  :html_high_threshold: 90
  :report_include_glob: "../Code/Src/**/*"

../Code/Src/**/*表示匹配../Code/Src目录下所有文件及子目录中的文件。

额外排查步骤

  1. 验证测试执行情况:先运行ceedling test:all确保所有测试正常执行,没有测试的话不会生成任何覆盖率数据。
  2. 清理旧构建文件:执行ceedling clean清理之前的构建产物和gcov数据,再重新生成报告,避免旧文件干扰。
  3. 检查路径正确性:在Ceedling工作目录下,执行ls ../Code/Src/(或对应你的实际路径),确认源文件确实存在且路径正确。
  4. 查看gcovr日志:添加--verbose参数运行Ceedling(ceedling gcov:all --verbose),查看gcovr的输出日志,确认是否有“未匹配到任何文件”的提示,进一步定位路径问题。

内容的提问来源于stack exchange,提问作者Joe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 01:20:38