我在我的ReactJS项目中使用jest和istanbul编写测试用例并检查测试覆盖率。
如何使用预提交挂钩确保任何我已暂存到git的文件的测试覆盖率不会降低到其提交之前的当前值?
如何使用预提交挂钩确保任何我已暂存到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
}
}
}
}
你可以将其与 lint-staged 和 husky 结合使用,实现在提交前进行检查。
最终,你的 package.json 将如下所示:
{
...package.json
"husky": {
"hooks": {
"pre-commit": "jest",
}
}
}