isparta CLI选项清单:cover命令全部参数逐项详解
【免费下载链接】isparta:skull: A code coverage tool for ES6 (babel/6to5)项目地址: https://gitcode.com/gh_mirrors/isp/isparta
isparta 是一个面向 ES6(babel/6to5)的代码覆盖率工具,它基于 istanbul 实现,能让你在运行测试的同时透明地统计语句、分支、函数与行覆盖率。本文以CLI 选项清单的形式,把 isparta 唯一的命令cover的全部参数逐项拆解:每个选项的含义、默认值、能否重复使用、缩写形式,以及如何搭配配置文件使用,帮助新手快速查清"这条命令该怎么写"。
⚠️ 先说结论:isparta 的命令行接口非常克制——
cover命令之外没有其他子命令,且并非 istanbul 的所有选项都能用。不确定时,随时运行isparta -h查看帮助(见 README 中的 Usage 说明)。
cover 命令在测试流程结束后输出的覆盖率表格,即--report text类格式的典型效果
一、cover 命令是做什么的?
cover是 isparta 唯一注册在 CLI 上的命令(定义见 src/cli/commands/cover.js)。它的工作方式是:
- 对匹配到的 ES6 源文件做插桩(instrumentation),插桩器实现见 src/instrumenter.js;
- 以你指定的
cmd作为主程序运行(例如 mocha、karma 的启动脚本); - 进程退出时,把
coverage.json和各类报告写到输出目录。
所有选项都在这一个命令上,因此"选项清单"其实就是下表这一份。
二、cover 命令全部参数速查表
| 选项 | 缩写 | 类型 | 默认值 | 作用 |
|---|---|---|---|---|
cmd | — | 必填位置参数 | 无 | 要运行的 ES6 命令/脚本,如 mocha 的入口 |
--config | — | 字符串 | .istanbul.yml | 指定 istanbul 格式配置文件 |
--default-excludes | — | 开关 | 关 | 应用默认排除规则**/node_modules/**、**/test/**、**/tests/** |
--excludes | -x | 列表 | [] | 排除的文件集模式,可重复,如**/vendor/** |
--report | — | 列表 | lcv | 报告格式,可重复指定多个 |
--root | — | 字符串 | 当前目录 | 查找待插桩文件的根路径 |
--include | -i | 列表 | **/*.js | 纳入覆盖统计的文件集模式,可重复 |
--verbose | -v | 开关 | 关 | 输出详细调试日志 |
--include-all-sources | — | 开关 | 关 | 测试运行后统计所有未被引用的源文件 |
选项的完整定义位于 src/cli/ArgParser.js,对应的行为测试在 test/ArgParser.js,可以对照源码逐项验证。
三、逐项详解
1.cmd(必填)——你要测的入口
cover后面第一个参数就是cmd,例如 mocha 的node_modules/mocha/bin/_mocha。解析规则(见 src/cli/commands/cover.js):
- 若
cmd是一个存在的文件,直接转为绝对路径运行; - 若不是本地文件,则尝试从系统可执行文件中解析(
which); - 两者都失败会报
Unable to resolve file [xxx]并退出(见 test/bin.js)。
小技巧:cmd之后用--分隔,后面的内容会原样透传给目标命令,例如... _mocha -- --reporter dot。
2.--config <path>——接管 .istanbul.yml
不传时使用默认的.istanbul.yml。传入后,命令行选项会覆盖配置文件中的同名项(overrideConfigWith逻辑),所以推荐"配置文件打底 + 命令行微调"的方式。
3.--default-excludes——一键排除 node_modules 等
开启后应用默认排除集**/node_modules/**、**/test/**、**/tests/**,防止统计依赖库和测试代码本身。
4.-x, --excludes <pattern>——自定义排除,可叠加
列表型选项,可以写多次。例如--excludes "**/vendor/**"把第三方目录踢出统计。注意:报告输出目录会被自动加入排除集,避免覆盖率文件"自己统计自己"。
5.--report <format>——报告格式,可叠加
默认值为lcv(istanbul 内置的 lcov 系报告组合)。可重复传入,例如同时输出--report text --report html,分别得到终端表格和可视化 HTML 报告。
6.--root <path>——插桩搜索根目录
指定从哪个目录开始查找待插桩文件;缺省时用当前工作目录。
7.-i, --include <pattern>——圈定要统计的文件
默认**/*.js,可重复指定多个 glob。另外,cover之后直接跟的多余位置参数也会被当作 include 文件合并进来(见 src/cli/index.js),适合临时补测单个文件。
8.-v, --verbose——排错利器
开启后终端会打印实际解析到的完整 options、正在运行的命令、以及每个被预加载的文件名,排查"为什么某个文件没被统计"时第一选择。
9.--include-all-sources——把没被 require 的文件也算进去
默认只有测试真正require到的文件才会出现在报告里;加上该开关后,所有匹配的源文件都会被强制加载并计入报告,让"零覆盖"的文件显形。
四、典型命令行示例
官方 README 给出的 mocha 场景:
babel-node node_modules/isparta/bin/isparta cover \ --report text --report html \ node_modules/mocha/bin/_mocha -- --reporter dot要点:isparta 通过 babel 转译 ES6,因此通常需要用babel-node启动。
五、新手常见问题
Q:为什么我传了某个 istanbul 选项没反应?A:isparta 并未暴露 istanbul 的全部选项,只有上表列出的这些。想传更多参数,请走--config指向的.istanbul.yml配置文件。
Q:报告写到哪里?A:默认写入coverage目录下的coverage.json与所选格式文件,可用-v在终端确认实际路径。
Q:isparta 还能用吗?A:项目已停止维护,官方建议迁移到 istanbuljs/nyc(见 README.md 顶部说明)。了解 isparta 的参数体系,对理解 nyc 这类后代工具同样有帮助。
📌 参考文件:package.json(bin 入口与依赖)、src/cli/ArgParser.js(选项定义)、src/cli/commands/cover.js(执行逻辑)、test/ArgParser.js(选项行为测试)。
【免费下载链接】isparta:skull: A code coverage tool for ES6 (babel/6to5)项目地址: https://gitcode.com/gh_mirrors/isp/isparta
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考