
本文将指导你如何在 GitHub 上配置 Python 项目的代码覆盖率,以便每次推送时都能自动生成覆盖率报告。我们将使用 pytest-cov 工具来生成覆盖率数据,并将其上传到 Codecov 等平台进行可视化展示,从而帮助你更好地了解代码的测试情况。
使用 pytest-cov 生成覆盖率报告
pytest-cov 是一个 pytest 插件,它可以方便地生成代码覆盖率报告。 要使用它,首先需要安装它:
pip install pytest-cov
接下来,在运行 pytest 时,使用 –cov 选项指定要覆盖的目录。通常,我们会覆盖包含源代码的目录。 例如,如果你的源代码位于 src 目录下,则可以这样运行 pytest:
pytest --cov=src tests/
这会运行你的测试,并生成一个覆盖率报告。默认情况下,该报告会输出到控制台。
立即学习“Python免费学习笔记(深入)”;
配置 GitHub Actions 自动生成覆盖率报告
为了在每次推送时自动生成覆盖率报告,我们需要配置 GitHub Actions。 修改你的 .github/workflows/github-actions.yaml 文件,使其包含以下步骤:
name: Python CIon: [push]jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.11' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Test with pytest and coverage run: | pip install pytest pytest-cov pytest --cov=. tests/ - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} # 可选,如果你的项目是私有的 flags: unittests name: codecov-umbrella
解释:
安装依赖: 确保 pytest 和 pytest-cov 已安装。运行测试并生成覆盖率报告: 使用 pytest –cov=. tests/ 命令运行测试,并生成覆盖率数据。–cov=. 指示 pytest 覆盖当前目录及其子目录。 你可以根据实际情况修改覆盖的目录。上传覆盖率报告到 Codecov: 使用 codecov/codecov-action@v3 action 将覆盖率报告上传到 Codecov。你需要一个 Codecov 账号,并且可能需要在 GitHub 项目的 Secrets 中配置 CODECOV_TOKEN (如果你的仓库是私有的)。
Codecov 的使用 (可选)
Codecov 是一个代码覆盖率分析平台,它可以将你的覆盖率报告可视化,并提供一些有用的功能,例如:
覆盖率历史记录: 查看覆盖率随时间的变化。代码高亮显示: 突出显示未被测试覆盖的代码行。Pull Request 集成: 在 Pull Request 中显示覆盖率变化。
要使用 Codecov,你需要:
注册一个 Codecov 账号。在 GitHub 项目中启用 Codecov 集成。在 GitHub Actions 中配置 Codecov token (如果你的仓库是私有的)。
注意事项
确保你的测试覆盖了尽可能多的代码。定期检查覆盖率报告,并根据需要改进测试。考虑使用其他代码覆盖率工具,例如 coverage.py。根据你的项目结构调整 –cov 参数。
总结
通过使用 pytest-cov 和 GitHub Actions,你可以轻松地在 GitHub 上配置 Python 项目的代码覆盖率。 这可以帮助你更好地了解代码的测试情况,并提高代码质量。 Codecov 等平台可以进一步增强覆盖率分析和可视化。 记住,代码覆盖率只是代码质量的一个指标,不要过度依赖它。 编写高质量的测试用例才是最重要的。
以上就是在 GitHub 上展示 Python 项目的代码覆盖率的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1375161.html
微信扫一扫
支付宝扫一扫