isparta CLI选项清单:cover命令全部参数逐项详解
2026/8/23 17:17:00 网站建设 项目流程

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)。它的工作方式是:

  1. 对匹配到的 ES6 源文件做插桩(instrumentation),插桩器实现见 src/instrumenter.js;
  2. 以你指定的cmd作为主程序运行(例如 mocha、karma 的启动脚本);
  3. 进程退出时,把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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询