开玩笑的coverageThreshold glob 排除一些子文件夹

问题描述

在我的 ./src/app/global-team 文件夹中,有 a-z 文件夹。我想在除 d、f 和 y 之外的所有文件夹上设置我的阈值级别。我想获得聚合数字而不是每个文件夹/文件的数字。我最接近的尝试是以下按文件报告数字:

coverageThreshold: {
  './src/app/global-team/!(d|f|y)/**': {
    branches: 95,functions: 95,lines: 95,statements: 95
  }
}

并且删除 ** 通配符不起作用:'./src/app/global-team/!(d|f|y)/

排除某些子文件夹但在汇总级别具有报告的正确 glob 是什么?

解决方法

Jest Documentation 中所述,您可以指定多个阈值,并且可以使用通配符。虽然这不是 glob 特定的方法,例如 collectCoverageFrom,但它会支持您要完成的任务。

{
  ...
  "jest": {
    "coverageThreshold": {
      "global": {
        "branches": 50,"functions": 50,"lines": 50,"statements": 50
      },"./src/components/": {
        "branches": 40,"statements": 40
      },"./src/reducers/**/*.js": {
        "statements": 90
      },"./src/api/very-important-module.js": {
        "branches": 100,"functions": 100,"lines": 100,"statements": 100
      }
    }
  }
}

我将覆盖范围设置为覆盖项目,并使用带有 glob 的父目录,然后删除我不想覆盖的内容,我确实获得了源代码树视图。该视图的文件夹“A”包含 overall coverage metrics 总体指标。

点击进入,然后点击单个文件(或多个文件夹),其中包含 their metrics 该文件夹或文件的指标。

可能仍然不想要你想要的。我之前也跑过Jest

下一个选项是创建多个 jest.config.js 文件(jest.config.main.js、jest.config.projectb.js)并使用这些配置文件中的每一个运行 Jest,但将输出放在不同的目录中.我在 e2e 测试期间使用它来测试覆盖率。

同样,不确定这是否完全符合您的要求。