使用jest时如何在覆盖率报告中配置水印?

问题描述 投票:0回答:2

我的覆盖率报告运行良好,但我想配置用于标记覆盖率绿色、黄色和红色的水印。

我的覆盖报告目前如下所示:

当覆盖范围为< 50时,似乎使用红色,当覆盖范围>80时,使用绿色,否则使用黄色。

我可以在哪里配置这些值,这样我就可以使用例如40 和 60 代替?

我自己对此的研究到此结束:https://jestjs.io/docs/configuration#coveragereporters-arraystring--string-options 在这里:https://github.com/istanbuljs/nyc/blob/master/README.md#installation--usage

看来应该用这样的东西:

{
  "watermarks": {
    "lines": [40, 70],
    "functions": [40, 70],
    "branches": [40, 70],
    "statements": [40, 70]
  }
}

但是我应该把它放在哪里呢?我尝试将一个名为 .nycrc 的文件放入 package.json 中。没成功。

我在 VSCode 中使用 Jest 进行测试(“jest --coverage”),并且使用 NPM/NESTJS。

testing jestjs istanbul test-coverage
2个回答
0
投票

已经过去这么久了,我相信你已经找到了答案,@Mikael。将其发布在这里,以防万一其他人需要它......

这里的笑话文档开始,您将看到代码覆盖率的所有配置选项。

这是我在项目中使用的示例,保存到名为

jest.config.js
的文件中。

module.exports = {
  passWithNoTests: true,

  // collectCoverage: true,
  collectCoverageFrom: [
    './docs/**/*.{js,jsx}',
    '!**/media/**',
    '!**/node_modules/**',
    '!**/vendor/**',
    '!**/_site/**',
  ],
  coverageDirectory: "./coverage/",
  coverageThreshold: {
    global: {
      branches: 80,
      functions: 80,
      lines: 80,
      statements: -10,
    },
  },
};

我的

package.json
有以下脚本(除其他外):

  ...
  "scripts": {
    "test": "jest",
    "test-coverage": "npm run test -- --coverage",
    "test-watch": "npm run test -- --watch",
    "test-watch-all": "npm run test -- --watchAll",
  },
  ...

0
投票

这在 Jest 中似乎不可能。

水印配置适用于 istanbul,它内置于 Jest 中。此外,伊斯坦布尔项目声明其配置是直接通过 Jest 处理的。 https://istanbul.js.org/docs/tutorials/jest/。您应该能够使用

--coverage
标志设置 istanbul 配置。

不幸的是,这似乎不适用于在

jest
中设置水印阈值。 此问题是在 jest
 项目中提出的
,但该问题已过时并已关闭且未采取任何行动。

© www.soinside.com 2019 - 2024. All rights reserved.