Coverage.py:Python 代码覆盖率检测,一个库搞定
文章目录Coverage.pyPython 代码覆盖率检测一个库搞定不用它你缺的是什么支持哪些 Python 版本怎么用比你想的更深一点适合谁用Coverage.pyPython 代码覆盖率检测一个库搞定Coverage.py 在 GitHub 上已经拿到 3,386 Star 了。它做的是 Python 代码覆盖率检测。你跑完测试它告诉你有多少代码被执行过哪些分支还没走到。Python 标准库里自带的代码分析工具和追踪钩子就是它的底层引擎。不用它你缺的是什么写过 Python 测试的人迟早会遇到这个问题测试全绿了但心里没底。测试覆盖率不等于代码质量但覆盖率数字能告诉你测试到底测了多少东西。如果没有覆盖率工具你只能凭感觉判断——那行新代码到底被测试跑到没有那个异常分支是测试了还是忘了Coverage.py 给出的报告一目了然每个文件、每行代码的执行状态百分比一清二楚。支持哪些 Python 版本项目支持的 Python 版本覆盖了当前主流选择Python 3.10 到 3.15 beta包括 free-threading 模式PyPy3 3.10 和 3.11也就是说无论你用 CPython 的主线版本还是 PyPy都能用上。怎么用Coverage.py 的用法很直接。安装pipinstallcoverage跑测试并收集覆盖率coverage run-mpytest查看报告coverage report生成 HTML 格式的详细报告coverage htmlHTML 报告会在浏览器里打开每个源文件的高亮版本哪行执行了、哪行没执行颜色区分一眼看懂。比你想的更深一点Coverage.py 做的不是简单的行号记录。它利用 Python 标准库的 trace 模块和 AST 分析工具能精确识别哪些行是真正可执行的代码哪些是注释或空行。这意味着它的报告不会把空行算作「未覆盖」也不会漏掉分支。它还支持分支覆盖率测量branch coverage告诉你 if/else 的两个分支是否都走到了。企业级使用也考虑到了通过 Tidelift 可以提供商业级的支持和安全响应。适合谁用用 pytest、unittest 跑测试的 Python 开发者在 CI 流程中需要卡覆盖率阈值的团队维护开源库想给贡献者提供测试覆盖指引的维护者st 跑测试的 Python 开发者在 CI 流程中需要卡覆盖率阈值的团队维护开源库想给贡献者提供测试覆盖指引的维护者