如何在使用c8时排除*.spec.mjs测试文件以获取正确覆盖率
c8 排除测试文件配置方案
方案1:直接修改运行命令
在原有c8参数中新增--exclude规则匹配所有测试文件,修改后的package.json脚本配置如下:
"test": "c8 --check-coverage true --exclude '**/*.spec.mjs' mocha --recursive './lib/**/*.spec.mjs' --require esm"
**/*.spec.mjs会递归匹配所有目录下后缀为.spec.mjs的文件,c8统计覆盖率时会自动跳过这类文件。
方案2:package.json新增c8专属配置(更易维护)
如果后续还有其他覆盖率规则要配置,推荐在package.json中单独添加c8配置段,脚本可以简化:
{ "type": "module", "c8": { "check-coverage": true, "exclude": [ "**/*.spec.mjs", "**/*.test.mjs" ] }, "scripts": { "test": "c8 mocha --recursive './lib/**/*.spec.mjs' --require esm" } }
你可以在exclude数组里添加任意需要跳过的文件匹配规则,比如单元测试、配置文件等都可以统一在这里配置。
注意事项
如果是Windows环境直接运行命令报错,可将--exclude参数后的单引号替换为双引号:--exclude "**/*.spec.mjs"
配置完成后重新运行测试,覆盖率统计就会自动排除所有测试文件,仅计算业务代码的覆盖率,得到你需要的80.95%的统计结果。
内容的提问来源于stack exchange,提问作者Jackie
相关产品推荐
相关产品推荐

