Jest 提供了强大的代码覆盖率报告功能,帮助开发者了解测试覆盖情况:
生成覆盖率报告:
bash# 运行测试并生成覆盖率报告 jest --coverage # 或在 package.json 中配置 { "scripts": { "test:coverage": "jest --coverage" } }
覆盖率指标:
- Statements(语句覆盖率):被执行的代码语句百分比
- Branches(分支覆盖率):被执行的条件分支百分比
- Functions(函数覆盖率):被调用的函数百分比
- Lines(行覆盖率):被执行的代码行百分比
配置覆盖率:
javascript// jest.config.js module.exports = { collectCoverage: true, collectCoverageFrom: [ 'src/**/*.{js,jsx,ts,tsx}', '!src/**/*.d.ts', '!src/**/*.stories.{js,jsx,ts,tsx}', '!src/index.{js,jsx,ts,tsx}' ], coverageThreshold: { global: { branches: 80, functions: 80, lines: 80, statements: 80 } }, coverageReporters: ['text', 'lcov', 'html'] };
覆盖率报告格式:
text:命令行文本输出lcov:生成 lcov.info 文件,用于 CI/CD 工具html:生成 HTML 报告,可视化查看json:JSON 格式报告
最佳实践:
- 设置合理的覆盖率阈值(通常 80%)
- 排除不需要测试的文件(配置文件、类型定义等)
- 在 CI/CD 中集成覆盖率检查
- 定期审查未覆盖的代码
- 关注核心业务逻辑的覆盖率