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. 多进程测试怎么收集覆盖率?