从现有结构构建 lcov.info 文件或先运行一个内置覆盖构建器 :
npx @0xdoublesharp/doublcov build --lcov lcov.info --sources src
你得到的东西
- 便携式静态报告目录,可以上传到CI文物或任何静态主机.
- 为铸币局,Hardhat,Vitest,Jest,Node/V8,pytest,Rust覆盖工具以及gcov/lcov所建的建造者.
- 已发现线路的源级导航、分支/功能总量、剖析诊断和历史覆盖.
- 一个GitHub Action,npm包,独立的二进制,以及不同工程形状的多克图像.
安装
npm install --save-dev @0xdoublesharp/doublcov
或:
pnpm add -D @0xdoublesharp/doublcov
不安装运行 :
npx @0xdoublesharp/doublcov build
或:
pnpm dlx @0xdoublesharp/doublcov build
可执行文件是:
doublcov
图标
从现有的 LCOV 构建 :
doublcov build \
--lcov lcov.info \
--sources src
运行一个构建器然后构建报告 :
doublcov foundry -- --exclude-tests --ir-minimum
doublcov hardhat
doublcov vite
doublcov jest
doublcov v8
doublcov pytest
doublcov cargo-llvm-cov
doublcov cargo-tarpaulin
doublcov lcov-capture
本地建筑打开生成的 index.html 自动。 打开已有的报告目录 :
doublcov open coverage/report
对于大型项目或主机报告,生成分拆的静态资产:
doublcov build --mode static --no-open
doublcov open coverage/report
standalone 模式是本地默认并写入自定义 index.html 从磁盘上打开. static 模式是 CI 默认并写入 index.html,资产,以及GitHub Pages和其他静态主机的懒惰加载的JSON文件. doublcov open 检测报告类型:独立报告直接开放,静态报告在可用的本地端口提供。 静态预览在前地运行,30分钟后自动停止,除非浏览器延长.
常规 build 默认 :
- LCOV 路径 :
lcov.info - 源路径 :
src - 输出目录 :
coverage/report - 历史文件 :
.doublcov/history.json
构建器命令还读取生态系统配置,并将报告放在已解析的 LCOV 文件上 --out 未设置.
支持的构建者
foundry编号 :forge: 运行forge coverage --report lcovhardhat: 运行npx hardhat coveragevite编号 :vitest: 运行npx vitest run --coverage --coverage.reporter=lcovjest: 运行npx jest --coverage --coverageReporters=lcovc8编号 :v8编号 :node编号 :node-test: 运行npx c8 --reporter=lcov node --testpytest编号 :python编号 :coverage.py: 运行python -m pytest --cov --cov-report=lcov:<path>cargo-llvm-cov编号 :llvm-cov编号 :rust: 运行cargo llvm-cov --lcov --output-path <path>cargo-tarpaulin编号 :tarpaulin: 运行cargo tarpaulin --out Lcovlcov-capture编号 :lcov编号 :gcov编号 :c编号 :cpp: 运行lcov --capturegcov 风格的 C/C++ 覆盖数据
对于总是写的工具 lcov.info 在一个报告目录中, --lcov 必须指向结束于 lcov.info。 。 。 .
将参数传递给下面的构建者 --数字 :
doublcov forge -- --exclude-tests --ir-minimum
doublcov vite -- --runInBand
doublcov pytest -- tests/unit
doublcov cargo-llvm-cov -- --workspace
构建器集成在这个CLI中. 添加新构建器需要在寄存器中修改代码.
团结
创始人:
{
"scripts": {
"coverage": "doublcov forge -- --exclude-tests --ir-minimum",
"coverage:ci": "doublcov forge --no-open -- --exclude-tests --ir-minimum"
}
}
哈达特:
{
"scripts": {
"coverage": "doublcov hardhat",
"coverage:ci": "doublcov hardhat --no-open"
}
}
从现有的Hardhat LCOV:
npx hardhat coverage
doublcov build \
--lcov coverage/lcov.info \
--sources contracts \
--out coverage/report
Java脚本和类型脚本
doublcov vite
doublcov jest
doublcov v8
v8 用途 c8 在节点的内置测试跑道上 或从现有的LCOV中构建:
doublcov build \
--lcov coverage/lcov.info \
--sources src \
--extensions ts,tsx,js,jsx,mts,cts,mjs,cjs,vue
Python, Rust, C,和 C++ 组合键
doublcov pytest
doublcov cargo-llvm-cov
doublcov cargo-tarpaulin
doublcov lcov-capture -- --rc branch_coverage=1
这些构建者假定生态系统覆盖工具安装在项目或环境中: pytest-cov 以蟒蛇盟誓, cargo-llvm-cov 或者说 cargo-tarpaulin 给Rust,和 lcov + C/C++ 的编译器生成的gcov数据.
诊断
附加解析器标记的诊断 :
doublcov build \
--diagnostic foundry-debug:coverage.debug \
--diagnostic foundry-bytecode:coverage.bytecode
创始人别名:
doublcov forge --debug coverage.debug --bytecode coverage.bytecode
主题和UI钩
附上声明报告定制:
doublcov build \
--customization doublcov.config.json \
--theme ci-dark
自定义 JSON 可以设置 "open" 来控制是否生成 index.html 打开后 build 或建设者的命令。 也可以设置 lcov, (中文(简体) ), out, (中文(简体) ), sources, (中文(简体) ), extensions, (中文(简体) ), history,以及 name 默认值,加上主题和声明的 UI 勾通元数据 report:header, (中文(简体) ), report:summary, (中文(简体) ), file:toolbar,以及 sidebar:panel。 。 。 .
CLI 自动加载 doublcov.config.json 从当前工作目录中找到。 使用 --customization <path> 以覆盖路径。 必须有明确提供的定制路径.
本地建筑默认开放 。 CI 和 GitHub 动作默认为 --mode static --no-open启用 --mode, (中文(简体) ), --open,或 --no-open 以一跑推翻这一行为.
构建器命令默认从 CLI 旗下先解析, 然后解析 doublcov.config.json,然后项目配置,例如 package.json, (中文(简体) ), foundry.tomlHardhat源路径, Jest/Vitest/c8配置, .solcover.js,或 pyproject.toml当未配置报告输出时, Doublcov 将报告写入 report 已解决的 LCOV 文件旁边的目录 .
输出主机
独立报告可以从磁盘直接打开. 静态报告比较适合大型项目,可以上传到GitHub Pages,GitLab Pages,Netlify,Vercel,Cloudflare Pages,对象存储,或CI文物.
GitHub 动作
对于非节点项目,使用寄存器动作下载 CI 中的独立二进制 :
- uses: doublesharp/doublcov@v0
with:
command: build
args: --lcov coverage/lcov.info --sources src --out coverage/report
使用可移动的主要动作参考器进行相容动作更新 。 奥米 version
下载最新的 GitHub 释放二进制,或设置 version: v0.4.5 针入
下载的 CLI 二进制可复制 CI .
行动通过 --no-open 默认。 添加 --open 改为 args 只在工作流程有意具有可浏览器环境时.
分发
npm是CLI的主要发行渠道. 标记为GitHub Releases发布独立的二进制和校验和,root GitHub Action为任意语言CI包装这些二进制,Docker图像为容器化工作流程发布.
补充文件: