You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Istanbul/nyc获取目录下所有文件的覆盖率概览?

解决nyc/Istanbul不包含未测试文件的覆盖率统计问题

别担心,这个问题很常见,只需要调整nyc的配置,就能让它把src目录下所有文件(包括0覆盖率的)都纳入报告里。下面给你两种简单的实现方式:

方式一:直接修改npm脚本

你可以在nyc的命令里加上--include参数,明确指定要扫描的目录。把package.json里的nyc脚本改成这样:

"scripts": {
  "test": "mocha test/**/*.spec.js",
  "nyc": "nyc --reporter=html --include=src/**/* npm test"
}

这里的--include=src/**/*会告诉nyc:把src目录下所有层级的文件都纳入覆盖率统计,不管有没有被测试用例触及。

方式二:在package.json中添加nyc配置块

如果需要更清晰的配置管理(比如后续要加其他规则),可以在package.json里单独加一个nyc配置节点:

"scripts": {
  "test": "mocha test/**/*.spec.js",
  "nyc": "nyc npm test"
},
"nyc": {
  "include": ["src/**/*"],
  "reporter": ["html"]
}

这种方式把配置和脚本分离,后续修改起来更方便。

可选:排除特定文件

如果src里有一些你不想统计的文件(比如配置文件、第三方代码),可以添加exclude字段来过滤:

"nyc": {
  "include": ["src/**/*"],
  "exclude": ["src/config/*.js", "src/vendor/**/*"],
  "reporter": ["html"]
}

完成配置后,运行npm run nyc,生成的html报告(默认在coverage/index.html)就会展示src目录下的所有文件,哪怕是完全没有被测试覆盖的文件也会显示0%的覆盖率数据啦!

内容的提问来源于stack exchange,提问作者SecretIndividual

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:11:57