要在Angular 8项目中使用Husky和代码覆盖率的预提交条件,可以按照以下步骤进行设置:
步骤1:安装Husky和lint-staged
在项目根目录中运行以下命令来安装Husky和lint-staged:
npm install husky lint-staged --save-dev
步骤2:配置Husky
在package.json
文件中添加以下配置:
"husky": {
"hooks": {
"pre-commit": "ng test --code-coverage"
}
}
这将在每次提交代码之前运行ng test --code-coverage
命令。
步骤3:配置lint-staged
在package.json
文件中添加以下配置:
"lint-staged": {
"src/**/*.ts": [
"ng lint",
"ng test --browsers=ChromeHeadlessCI --watch=false --code-coverage"
]
}
这将在每次提交之前运行ng lint
和ng test
命令。
步骤4:配置代码覆盖率阈值
在angular.json
文件中,找到projects ->
部分,并设置合适的代码覆盖率阈值。例如:
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"codeCoverage": {
"threshold": {
"statements": 80,
"branches": 80,
"functions": 80,
"lines": 80
}
}
}
}
这将设置代码覆盖率的阈值为80%。
步骤5:运行测试命令
最后,在终端中运行以下命令以确保设置正确:
npm test
这将运行测试并生成代码覆盖率报告。
现在,当你提交代码时,Husky将自动运行测试,并检查代码覆盖率是否达到设定的阈值。如果没有达到阈值,提交将会被阻止。