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

Vitest测试覆盖率阈值未触发失败问题求助

Vitest覆盖率阈值不生效的排查方案

根据你提供的配置和覆盖率数据,所有指标都低于设定阈值但测试脚本未失败,可从以下几点排查:

  • 确保使用单次运行模式
    只有执行vitest run --coverage命令时,Vitest才会在覆盖率不达标时终止进程。如果用默认的watch模式(vitest --coverage),即使阈值未满足,进程也不会触发失败逻辑。

  • 升级Vitest到最新稳定版
    部分旧版本(尤其是v0.x系列)存在覆盖率阈值判断的bug,升级到v1.x最新版本可解决这类兼容性问题。

  • 检查命令行参数是否覆盖配置
    确认运行测试时没有传入覆盖阈值的参数,比如--coverage.thresholds={}这类会清空配置文件中阈值设置的命令行参数。

  • 验证配置细节
    你的当前配置层级正确,可显式添加perFile: false到coverage配置中,确保按全局阈值判断而非单个文件:

    coverage: {
      provider: "istanbul",
      reporter: ["text", "html", "json", "json-summary"],
      reportsDirectory: "./coverage",
      include: [
        'apps/farmart-web/src/hooks/**/*.ts',
        'apps/farmart-web/src/hooks/**/*.tsx',
      ],
      all: true,
      thresholds: {
        statements: 20,
        functions: 20,
        branches: 40,
        lines: 20,
      },
      perFile: false, // 显式指定全局阈值判断
      reportOnFailure: true,
    }
    
  • 确认all: true的作用范围
    你设置的all: true会统计include范围内的所有文件,该配置正确,但可检查include路径是否准确,避免遗漏或错误匹配文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:02:45