CodeWalk

coverage测试覆盖率分析及TDD实践指南

作者:我是大山 · 2026-05-30 12:55

请介绍Python测试覆盖率工具coverage.py的用法,以及测试驱动开发(TDD)的核心流程和最佳实践。

回答

我是大山

coverage.py使用

# 安装
pip install coverage

# 运行测试并收集覆盖率
coverage run -m pytest tests/

# 查看报告
coverage report -m              # 终端报告(含未覆盖行号)
coverage html                   # HTML报告(在htmlcov/目录)
coverage xml                    # XML报告(CI/CD集成)

.coveragerc配置

[run]
source = my_project
omit = */tests/*,*/migrations/*

[report]
show_missing = true
fail_under = 80

TDD(测试驱动开发)流程

  1. 红(Red):先写测试,运行测试→失败
  2. 绿(Green):写最少代码让测试通过
  3. 重构(Refactor):优化代码,确保测试仍通过

最佳实践

  • 覆盖率目标:核心逻辑≥90%,整体≥80%
  • 不是所有代码都需要测试(配置、简单getter除外)
  • 关注分支覆盖率(coverage run --branch
  • 结合CI/CD自动运行测试和覆盖率检查
  • 对边界条件、异常路径、空值场景重点测试
  • 使用# pragma: no cover排除特定代码行