You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub推送Python项目时自动展示测试覆盖率?

可行,用pytest-cov实现GitHub推送自动展示测试覆盖率

完全可以实现,Python生态中对应Java Jacoco的测试覆盖率工具是pytest-cov——它是pytest的官方插件,能生成多格式的覆盖率报告,配合GitHub Actions就能在每次推送代码时自动运行并展示覆盖率。

修改你的GitHub Actions配置

你当前的配置已经安装了pytest-cov,但没启用覆盖率检测功能。以下是调整后的完整配置:

name: Python CI
on: [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
        pip install pytest pytest-cov
    - name: Run tests with coverage
      run: |
        # --cov=./ 指定检测当前目录下的代码(可根据项目结构调整为src/等)
        # --cov-report=term 在终端输出覆盖率统计(Actions日志可见)
        # --cov-report=html 生成可视化HTML报告(可下载查看明细)
        pytest tests/ --cov=./ --cov-report=term --cov-report=html
    - name: Upload coverage report
      uses: actions/upload-artifact@v4
      with:
        name: coverage-html-report
        path: htmlcov/

关键参数说明

  • --cov=./:指定要检测覆盖率的代码根目录,根据你的项目结构修改(比如代码放在src文件夹下就写--cov=src)
  • --cov-report=term:在终端输出简洁的覆盖率统计数据,推送后可在Actions任务的日志中直接查看
  • --cov-report=html:生成可视化的HTML报告,包含每个文件、每行代码的覆盖情况

如何查看覆盖率

  1. 快速查看统计数据:推送代码后,进入仓库的「Actions」页面,找到刚运行的「Python CI」任务,点击「Run tests with coverage」步骤,就能看到终端输出的覆盖率百分比和文件级统计
  2. 查看详细覆盖明细:在同一个任务页面,找到「Upload coverage report」步骤,点击下载生成的coverage-html-report压缩包,解压后打开index.html,就能看到完整的代码覆盖详情,包括未被测试覆盖的代码行

额外优化建议

可以把pytest和pytest-cov添加到你的requirements.txt中,这样就不用在CI步骤里单独安装,简化配置:

# requirements.txt
pytest>=7.0.0
pytest-cov>=4.0.0
# 其他依赖...

内容的提问来源于stack exchange,提问作者JohanaAnez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 04:35:29