Aya*_*yan 7 git code-coverage istanbul jestjs nyc
我在 ReactJS 项目中使用 jest 和 istanbul 来编写测试用例并检查测试覆盖率。
我如何确保使用预提交钩子来测试我已暂存到 git 的任何文件的测试覆盖率,在提交之前不会从其当前值减少?
您应该从这里检查 jest 的coverageThreshold 文档
以下选项可用于全局覆盖阈值和文件名模式阈值。
{
...
"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
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以将其与lint staged和husky结合起来,以进行预提交签入。
最后,你的 package.json 看起来像这样:
{
...package.json
"husky": {
"hooks": {
"pre-commit": "jest",
}
}
}
Run Code Online (Sandbox Code Playgroud)