代码覆盖率总是搞不懂?5 分钟快速上手 + 常见问题详解
Streamlit 项目实战案例
快速入门
代码覆盖率工具用起来其实很简单。首先安装:
1 | pip install coverage |
在测试环境中启动项目时,只需要加上 coverage run 命令就行:
1 | coverage run --source=. -m streamlit run streamlit_app.py |
这里有两个关键参数:
--source=.:只统计当前目录下的代码覆盖率,其他目录的文件不计入-m:告诉 Python 把后面的内容当作模块来运行
接下来,在 Streamlit 界面里跑一跑你的功能(手动点一点或者上自动化测试都行),测试完成后生成报告:
1 | coverage report -m # 在终端查看行覆盖率 |
想要更直观的报告?生成 HTML 版本:
1 | coverage html # 生成网页版报告,浏览器打开看 |
进阶技巧
追加模式:不用重复执行
新增了测试用例?不用把之前的用例重新跑一遍。启动项目时加上 --append 参数,coverage 会自动追加新的覆盖率数据:
1 | coverage run --append --source=. -m streamlit run streamlit_app.py |
配置文件 .coveragerc:更多自定义选项
想要更精细地控制覆盖率统计?在项目根目录创建 .coveragerc 文件,可以配置:
- 是否统计分支覆盖率
- 开启并行模式(多进程测试必备)
- 忽略特定的文件、函数或代码行
- 选择报告输出格式
数据展示:一目了然
报告里会列出每个文件、类、函数的行覆盖率详情:
- 总览页面:快速了解整体覆盖情况
- 详细页面:逐行查看哪些代码被测试覆盖到了
常见问题
1. 覆盖率有哪些类型?
2. 覆盖率多少才合适?
3. 覆盖率 100% 就等于代码没问题?
4. 哪些代码不该计入覆盖率?
5. 怎么提高覆盖率?
6. 多进程测试怎么收集覆盖率?
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 AlanW Mountain!