Neatbo.

LCOV离线覆盖率报告

读取一份本地LCOV 1.x tracefile,重算覆盖率计数、保留未知分支,并下载完整离线HTML报告。

浏览器本地处理输入LCOV tracefile输出离线HTML / JSON / CSV单个文件最多 5 MiB · 最多 1 个
  1. 1添加输入
  2. 2调整设置
  3. 3获取结果

工具输入和文件在当前浏览器处理,不会上传。

输入内容

切换工具时在当前标签页临时保留输入。刷新或关闭后清除,较大的结果可能需要重新生成。

⌘ / Ctrl + Enter 运行

或将文件拖到这里

文件留在当前设备,原始文件不会被覆盖。

.info · .lcov · .txt

单个文件最多 5 MiB · 最多 1 个

    0 个字符 · 0 字节
    处理选项

    先填写标记为必填的选项,其余可保留默认值。

    正在准备处理工具…

    开始之前

    在不读取源文件路径的情况下检查测试运行器导出的覆盖率。查看真实行、函数和分支计数,识别过期声明汇总,并把独立HTML报告与原始tracefile一起交付。

    如何使用

    1. 粘贴或打开测试运行器导出的完整LCOV 1.x tracefile。
    2. 核对重算汇总、未知分支和声明计数差异。
    3. 下载coverage.html及完整JSON/CSV,在本地打开HTML并保留原始tracefile。

    支持范围与限制

    一份UTF-8文件或粘贴tracefile,最多5 MiB、50000个覆盖点(DA + FN + BRDA)、1000个完整源文件记录。每个准确源路径只允许一条记录;重复路径明确拒绝,不静默合并测试上下文。已选文件优先;全部下载合计最多10 MiB,表格预览前200条源记录。

    支持LCOV 1.x的TN、SF、FN、FNDA、DA、BRDA、LF/LH/FNF/FNH/BRF/BRH及可选VER。FNDA与FN顺序可不同,但每个函数必须同时有位置和次数。次数与分支标识为非负uint64;源行号1–2147483647。可选DA checksum必须为32位十六进制。新版FN结束行、FNL/FNA及MC-DC扩展拒绝。

    覆盖率汇总从实际覆盖点重算。声明汇总不一致会在报告中保留差异,不用它充当分母。BRDA“-”保留为未知,计入已发现分支,不改成命中次数0。分母为0显示n/a/null,不显示100%。

    完整HTML列出所有覆盖点和计数差异,转义文件、测试和函数文字,不含脚本或读取源路径的链接。JSON将uint64命中次数保存为十进制字符串;CSV包含每条源记录,表格安全保护可能给公式式标签加前缀。不会请求源文件、合并tracefile、运行测试或测量新的覆盖率。

    操作示例

    示例输入

    TN:unit
    SF:src/example.c
    FN:1,covered
    FN:4,missing
    FNDA:3,covered
    FNDA:0,missing
    DA:1,3
    DA:2,0
    DA:4,0
    BRDA:1,0,0,3
    BRDA:1,0,1,-
    LF:3
    LH:1
    FNF:2
    FNH:1
    BRF:2
    BRH:1
    end_of_record
    
    示例参数
    {"secondary":"","params":{"spreadsheetSafe":true}}

    示例输出

    {
      "format": "LCOV 1.x",
      "records": [
        {
          "path": "src/example.c",
          "testName": "unit",
          "version": null,
          "lines": [
            {
              "line": 1,
              "hits": "3",
              "checksum": null
            },
            {
              "line": 2,
              "hits": "0",
              "checksum": null
            },
            {
              "line": 4,
              "hits": "0",
              "checksum": null
            }
          ],
          "functions": [
            {
              "name": "covered",
              "line": 1,
              "hits": "3"
            },
            {
              "name": "missing",
              "line": 4,
              "hits": "0"
            }
          ],
          "branches": [
            {
              "line": 1,
              "block": "0",
              "branch": "0",
              "hits": "3"
            },
            {
              "line": 1,
              "block": "0",
              "branch": "1",
              "hits": null
            }
          ],
          "declared": {
            "LF": "3",
            "LH": "1",
            "FNF": "2",
            "FNH": "1",
            "BRF": "2",
            "BRH": "1"
          },
          "computed": {
            "LF": 3,
            "LH": 1,
            "FNF": 2,
            "FNH": 1,
            "BRF": 2,
            "BRH": 1
          },
          "summaryDifferences": []
        }
      ],
      "coverPoints": 7,
      "lines": 3,
      "lineHits": 1,
      "functions": 2,
      "functionHits": 1,
      "branches": 2,
      "branchHits": 1,
      "unknownBranches": 1,
      "summaryDifferences": 0,
      "summaryCountersAgree": true,
      "lineCoveragePercent": 33.333333333333336,
      "functionCoveragePercent": 50,
      "branchCoveragePercent": 50
    }

    出现问题时

    核对FN/FNDA名称匹配、覆盖点键唯一、end_of_record完整、非负uint64次数及LCOV版本。重复路径或扩展格式请回到原工具重新导出;过期声明以报告重算值为准。修正原文件后重新运行。

    常见问题

    为什么声明汇总不一致?

    工具从实际覆盖点重算。格式合法但过期的LF/LH等计数会与真实值一起报告,不会用于夸大覆盖率。

    “-”表示分支执行了0次吗?

    不表示。它说明没有可用执行次数;该分支继续标为未知,并计入已发现分支的分母。

    报告能显示源代码或合并多个运行吗?

    不能。路径只是转义文字,从不读取或请求。重复源路径或新版格式扩展会拒绝,请从原工具导出支持范围内的完整tracefile。

    文档与延伸阅读

    相关工具