我的覆盖率报告运行良好,但我想配置用于标记覆盖率绿色、黄色和红色的水印。
当覆盖范围为< 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。
已经过去这么久了,我相信你已经找到了答案,@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",
},
...
这在 Jest 中似乎不可能。
水印配置适用于 istanbul,它内置于 Jest 中。此外,伊斯坦布尔项目声明其配置是直接通过 Jest 处理的。 https://istanbul.js.org/docs/tutorials/jest/。您应该能够使用
--coverage
标志设置 istanbul 配置。
不幸的是,这似乎不适用于在
jest
中设置水印阈值。 此问题是在 jest
项目中提出的,但该问题已过时并已关闭且未采取任何行动。