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

如何用Vitest和v8为单个测试文件生成代码覆盖率报告?

解决Vitest单文件测试与单文件覆盖率报告问题

具体解决方案

方式1:临时运行时指定参数

直接在终端执行以下命令,既能限定仅运行目标测试文件,又能只收集对应业务文件的覆盖率:

npm run test:coverage -- hello.test.ts --coverage.collectCoverageFrom=src/hello.ts

注意:-- 是npm用来传递额外参数给脚本命令的分隔符,后面的参数会直接传给vitest。

方式2:新增专用npm脚本

如果需要频繁执行这个测试任务,可以在package.json里新增一条专属脚本:

"test:hello:coverage": "vitest run --coverage --collectCoverageFrom='src/hello.ts' hello.test.ts"

之后只需执行以下命令即可:

npm run test:hello:coverage

问题原因说明

你之前使用--collectCoverageFrom=src/hello.ts无效,是因为Vitest的覆盖率相关命令行参数需要以--coverage.作为前缀(对应配置文件中的coverage配置项),直接使用--collectCoverageFrom不会被识别为覆盖率配置的一部分。

另外,单独运行npm run test:coverage hello.test.ts时,vitest只会执行指定的测试文件,但覆盖率收集逻辑默认还是会扫描所有符合全局配置的文件,因此会包含无关文件的覆盖率数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 13:52:08