2.9 KiB
2.9 KiB
代码质量门禁
概述
项目配置了自动化质量门禁,确保代码提交前通过所有质量检查。
质量检查
1. 代码风格检查
工具: ESLint
检查时机: pre-commit hook
检查内容:
- 代码语法错误
- 代码风格规范
- 代码格式化
通过标准: 无错误,无警告
2. 提交信息规范
工具: commitlint
检查时机: commit-msg hook
检查内容:
- 提交信息格式
- 提交类型合法性
通过标准: 符合Conventional Commits规范
提交类型:
feat: 新功能fix: 修复bugdocs: 文档更新style: 代码格式调整refactor: 重构perf: 性能优化test: 测试相关chore: 构建/工具相关revert: 回滚提交build: 构建相关ci: CI/CD相关
提交信息格式:
<type>(<scope>): <subject>
<body>
<footer>
示例:
feat(auth): add JWT authentication
Implement JWT-based authentication with:
- Token generation
- Token validation
- Refresh token mechanism
Closes #123
3. 代码覆盖率检查
工具: Jest
检查时机: 手动运行或CI/CD
检查内容:
- 单元测试覆盖率
- 分支覆盖率
- 函数覆盖率
- 行覆盖率
- 语句覆盖率
通过标准:
- 分支覆盖率: ≥ 70%
- 函数覆盖率: ≥ 70%
- 行覆盖率: ≥ 70%
- 语句覆盖率: ≥ 70%
4. 类型检查
工具: TypeScript
检查时机: pre-commit hook(通过ESLint)
检查内容:
- 类型错误
- 类型推断
通过标准: 无类型错误
如何绕过质量门禁
⚠️ 警告: 仅在紧急情况下绕过质量门禁
绕过pre-commit hook
git commit --no-verify -m "message"
绕过commit-msg hook
git commit --no-verify -m "message"
绕过所有hooks
git commit --no-verify -m "message"
故障排查
ESLint错误
问题: pre-commit hook因ESLint错误失败
解决方案:
- 查看错误详情
- 修复代码或配置
- 运行
npm run lint检查 - 重新提交
commitlint错误
问题: commit-msg hook因提交信息格式错误失败
解决方案:
- 检查提交信息格式
- 使用正确的提交类型
- 重新提交
覆盖率不达标
问题: 覆盖率检查失败
解决方案:
- 查看覆盖率报告
- 补充测试用例
- 重新提交
持续改进
提高覆盖率阈值
随着项目发展,逐步提高覆盖率阈值:
- Phase 1: 70% (当前)
- Phase 2: 75%
- Phase 3: 80%
- Phase 4: 85%
- Phase 5: 90%
添加更多质量检查
未来可以添加:
- 复杂度检查
- 重复代码检查
- 安全漏洞扫描
- 依赖漏洞检查