在 Angular 8 项目中,使用赫斯基(Husky)来设置代码覆盖率的预提交条件是一个很好的实践,可以确保在提交代码之前,所有的测试都通过并且代码覆盖率达到一定的标准。以下是如何在 Angular 8 项目中配置赫斯基以实现代码覆盖率的预提交条件的步骤。
首先,确保您已经在项目中安装了赫斯基。您可以通过以下命令安装赫斯基:
npm install husky --save-dev
在 package.json
文件中添加赫斯基的配置。您可以在 scripts
部分添加一个 test
脚本来运行测试并生成代码覆盖率报告。然后,您可以在赫斯基的 hooks
部分添加一个 pre-commit
钩子。
{
"scripts": {
"test": "ng test --watch=false --code-coverage",
"test:coverage": "ng test --watch=false --code-coverage --code-coverage --reporters=spec"
},
"husky": {
"hooks": {
"pre-commit": "npm run test"
}
}
}
您可以在 angular.json
文件中设置代码覆盖率的阈值。找到 projects
下的您的项目配置,并在 architect
的 test
部分添加 coverageThreshold
配置。例如:
"projects": {
"your-project-name": {
"architect": {
"test": {
"options": {
"codeCoverage": true,
"coverageThreshold": {
"global": {
"branches": 80,
"functions": 80,
"lines": 80,
"statements": 80
}
}
}
}
}
}
}
在这个例子中,您设置了全局的代码覆盖率阈值为 80%。您可以根据需要调整这些值。
现在,当您尝试提交代码时,赫斯基会自动运行测试并生成代码覆盖率报告。如果代码覆盖率低于您在 angular.json
中设置的阈值,提交将会失败。
如果提交失败,您将看到测试的输出和覆盖率报告。您可以根据这些信息来修复代码,增加测试用例,直到代码覆盖率达到要求。
领取专属 10元无门槛券
手把手带您无忧上云