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

如何在.nycrc中配置基于目录的coverageThreshold覆盖率阈值

nyc按目录配置差异化覆盖率阈值解决方案

nyc原生支持按目录/文件匹配规则设置不同的覆盖率阈值,两种常用实现方案如下:

方案1:直接在.nycrc.json中配置(推荐,nyc v14及以上版本支持)

在原有配置基础上新增thresholds字段,既可以保留全局兜底阈值,也可以为任意glob匹配的路径设置单独阈值,示例配置:

{
    "reporter": ["lcov", "text-summary"],
    "temp-dir": "coverage",
    "check-coverage": true,
    "include": ["src/**/*"],
    "thresholds": {
        "global": {
            "branches": 10,
            "lines": 10,
            "functions": 10,
            "statements": 10
        },
        "src/utils/**/*.js": {
            "branches": 80,
            "lines": 90,
            "functions": 100,
            "statements": 90
        },
        "src/components/**/*.js": {
            "branches": 60,
            "lines": 70,
            "functions": 70,
            "statements": 70
        },
        "src/mock/**/*.js": {
            "branches": 0,
            "lines": 0,
            "functions": 0,
            "statements": 0
        }
    }
}

配置规则说明:

  • global下的配置为全局兜底阈值,所有未匹配到单独规则的文件都会使用该阈值校验
  • 自定义路径的键为glob匹配规则,优先级高于global,匹配范围越具体优先级越高
  • 可根据项目实际情况调整匹配路径、文件后缀以及对应的阈值要求

方案2:通过多轮命令行调用实现(兼容所有版本)

如果使用的nyc版本较低不支持thresholds配置项,可以通过多次执行nyc check-coverage命令实现差异化校验,可将以下命令写成脚本统一执行:

# 全局覆盖率校验
npx nyc check-coverage --branches 10 --lines 10 --functions 10 --statements 10
# 校验utils目录覆盖率
npx nyc check-coverage --include 'src/utils/**/*.js' --branches 80 --lines 90 --functions 100 --statements 90
# 校验components目录覆盖率
npx nyc check-coverage --include 'src/components/**/*.js' --branches 60 --lines 70 --functions 70 --statements 70

注意事项:

  • 命令中的glob路径需要用单引号包裹,避免shell提前解析通配符导致匹配失效
  • 可根据需求灵活增减校验规则,也可以自行添加自定义判断逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:36:03