首页 > 解决方案 > jest coverageThreshold glob 排除了一些子文件夹

问题描述

在我的./src/app/global-team文件夹中,有 az 文件夹。我想在除 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?

标签: jestjsglob

解决方案


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”。

单击它,然后单击单个文件(或更多文件夹)以及他们的指标该文件夹或文件的指标。

很可能还是不想要你想要的。我也跑在开玩笑之前

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

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


推荐阅读