genhtml 工具使用说明

发布于:2025-04-21 ⋅ 阅读:(100) ⋅ 点赞:(0)

genhtml 工具使用说明


简介

genhtml 是一个用于生成 HTML 格式代码覆盖率报告的工具,基于 lcov 生成的覆盖数据文件(如 lcov.info)生成交互式 HTML 报告。它支持多种自定义选项,可控制报告内容、样式、输出格式等。


基本用法

genhtml [OPTIONS] TRACEFILE_PATTERN(S)
  • TRACEFILE_PATTERN(S):覆盖数据文件的路径或通配符模式(如 *.info)。
  • 示例genhtml -o report coverage.info

常用选项

通用选项

选项 说明 示例
-h, --help 显示帮助信息并退出。 genhtml --help
--version 显示版本号并退出。 genhtml --version
-v, --verbose 增加输出详细程度(可重复使用,如 -vv)。 genhtml -vv coverage.info
-q, --quiet 减少输出信息(关闭进度提示)。 genhtml -q coverage.info
--debug 增加调试信息输出。 genhtml --debug coverage.info
--config-file FILENAME 指定配置文件路径。 genhtml --config-file myconfig.conf coverage.info
--rc SETTING=VALUE 覆盖配置文件中的设置。 genhtml --rc genhtml_output_dir=/tmp report

操作选项

输出控制
选项 说明 示例
-o, --output-directory OUTDIR 指定 HTML 输出目录。 genhtml -o report coverage.info
-d, --description-file DESCFILE 指定测试描述文件路径。 genhtml -d test_desc.txt coverage.info
-b, --baseline-file BASEFILE 指定基线覆盖数据文件(用于对比)。 genhtml -b baseline.info coverage.info
数据处理
选项 说明 示例
--annotate-script SCRIPT 使用脚本获取版本控制数据(如 Git)。 genhtml --annotate-script git_annotate.sh coverage.info
--filter FILTERS 应用过滤规则(如 branchfunction)。 genhtml --filter branch coverage.info
--include PATTERN 仅包含匹配模式的文件。 genhtml --include 'src/*.c' coverage.info
--exclude PATTERN 排除匹配模式的文件。 genhtml --exclude 'test/*' coverage.info
--source-directory DIR 指定源代码目录路径。 genhtml --source-directory /my/project coverage.info
高级选项
选项 说明 示例
-j, --parallel [N] 启用并行处理(N 为最大线程数)。 genhtml -j4 coverage.info
--profile [FILENAME] 记录性能统计到文件。 genhtml --profile stats.json coverage.info

HTML 输出选项

布局与样式
选项 说明 示例
-f, --frames 使用 HTML 框架显示源代码。 genhtml --frames coverage.info
-t, --title TITLE 设置报告标题。 genhtml -t "My Project Coverage" coverage.info
--css-file CSSFILE 使用外部 CSS 文件。 genhtml --css-file custom.css coverage.info
--dark-mode 启用深色主题。 genhtml --dark-mode coverage.info
内容显示
选项 说明 示例
--show-details 生成详细目录视图。 genhtml --show-details coverage.info
--show-owners 显示所有所有者的覆盖率摘要。 genhtml --show-owners coverage.info
--no-sourceview 不生成源代码视图。 genhtml --no-sourceview coverage.info
路径与文件处理
选项 说明 示例
-p, --prefix PREFIX 移除路径前缀(如 /home/user/)。 genhtml --prefix /home/user/ coverage.info
--substitute REGEXP 通过正则表达式修改源文件路径。 genhtml --substitute 's/old/new/' coverage.info

高级选项

选项 说明 示例
--baseline-title TITLE 设置基线数据的标题。 genhtml --baseline-title "Previous Build" -b baseline.info coverage.info
--diff-file UDIFF 使用统一差异文件对比源代码变更。 genhtml --diff-file changes.diff coverage.info
--demangle-cpp 反编译 C++ 函数名(如 std::string)。 genhtml --demangle-cpp coverage.info

示例命令

  1. 生成基本报告

    genhtml -o report coverage.info
    
  2. 使用基线对比并指定标题

    genhtml -o report --baseline-file baseline.info --title "Coverage Report" coverage.info
    
  3. 并行处理并压缩 HTML

    genhtml -j8 --html-gzip -o report coverage.info
    
  4. 过滤特定目录并启用深色主题

    genhtml --include 'src/' --dark-mode -o report coverage.info
    

注意事项

  • 覆盖数据文件:需先通过 lcov 或其他工具生成 .info 格式的覆盖数据。
  • 路径处理:使用 -p--prefix 可简化生成的 HTML 中的路径显示。
  • 基线文件--baseline-file 用于对比历史覆盖率数据,需与当前数据格式一致。
  • 详细帮助:更多选项细节可通过 man genhtml 或参考官方文档获取。

通过合理配置选项,genhtml 可生成高度定制化的代码覆盖率报告,满足不同项目的需求。


网站公告

今日签到

点亮在社区的每一天
去签到