在 github 中显示覆盖范围

问题描述 投票:0回答:1

我在 github 中有一个 python 项目,我希望每次推送时,github 都会显示该项目的覆盖范围。那可能吗?我需要什么工具?当我以前使用java时,jacoco解决了这个问题,但在python中我不知道我可以使用什么工具。 我的 .github/workflows/github-actions.yaml 是:

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
    - name: Test with pytest
      run: |
        pip install pytest pytest-cov
        pytest tests/ 

有什么建议吗?

python code-coverage circleci codecov
1个回答
0
投票

这绝对是可能的。可能的解决方案之一是使用提供您所需功能的codecov.io服务。

为此,您需要执行以下步骤:

注册并获取 Codecov 代币

首先,您需要在 codecov.io 服务中创建一个帐户,然后通过个人资料图片 -> 设置 -> 设置标签 -> 访问窗格 -> “生成令牌”按钮获取 API 令牌。

为令牌命名,然后单击另一个“生成令牌”按钮。

最后,复制您的令牌。

在 Github Secrets 中添加 codecov 令牌

一旦获得令牌,您需要将其安全地提供给 CI/CD 管道。为此,您需要访问存储库的设置页面,导航到“秘密和变量”->“操作”,然后选择“新存储库秘密”。如果您打算将一个令牌用于组织中的多个存储库,您可以考虑添加组织范围的机密。

设置名称,我个人更喜欢“CODECOV_TOKEN”,然后粘贴您在上一步中获得的令牌。

更新您的 Github 操作

最后,您需要修改 github 操作才能开始将覆盖率报告上传到 codecov.io。

更新“使用 pytest 进行测试”步骤

    - name: Test with pytest
      run: |
        pip install pytest pytest-cov
        pytest --cov=./ --cov-report=xml tests/ 

注意:向

--cov=./ --cov-report=xml
命令添加
pytest
参数,以便指示
pytest-cov
库收集覆盖范围并以 xml 格式提供。

添加“收集覆盖范围”步骤

   - name: Collect coverage
      uses: codecov/codecov-action@v3
      with:
        token: ${{ secrets.CODECOV_TOKEN }}
        fail_ci_if_error: true
        files: ./coverage.xml
        verbose: true

这是 Codecov 服务的官方 Github 操作。它应该是一个很好的基线,可以让您检查它是如何工作的。

注意:

token: ${{ secrets.CODECOV_TOKEN }}
您需要提供令牌,因此如果您给它另一个名称,它可能会有所不同。

我希望这可以帮助您完成所有设置。我鼓励您阅读有关 codecov 提供的配置选项的更多信息,以便调整集成。

© www.soinside.com 2019 - 2024. All rights reserved.