GitHub Actions如何访问自定义生成的测试覆盖率徽章?
测试覆盖率徽章访问方案
你生成的coverage.svg仅存在GitHub Actions runner的临时工作目录中,工作流结束后该目录会被自动清理,因此无法直接访问。要在README里展示这个徽章,必须修改工作流来持久化该文件,以下是两种可行方案:
方案一:将徽章提交到仓库(简单场景推荐)
修改你的pytest.yaml工作流,在生成coverage.svg的步骤之后,添加提交推送文件的步骤:
- name: 提交覆盖率徽章 run: | git config --local user.name "github-actions[bot]" git config --local user.email "github-actions[bot]@users.noreply.github.com" git add coverage.svg git commit -m "更新测试覆盖率徽章" || echo "没有需要提交的变更" git push
完成后,工作流每次运行都会把最新的coverage.svg推送到仓库根目录,之后在README里可以这样引用:
 # 或者使用仓库raw链接 
方案二:用GitHub Pages托管徽章
- 先在仓库设置中开启GitHub Pages,选择从
gh-pages分支部署 - 修改工作流,添加将
coverage.svg上传到gh-pages分支的步骤:
- name: 部署到GitHub Pages uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./ publish_branch: gh-pages destination_dir: badges keep_files: false
之后在README里用GitHub Pages的链接引用徽章:

注意:你当前能访问的pytest.yaml/badge.svg是GitHub官方提供的工作流状态徽章,和你生成的测试覆盖率徽章不是同一个东西,必须通过上述方式持久化覆盖率徽章文件,才能在README中展示。
内容的提问来源于stack exchange,提问作者Vince
相关产品推荐
相关产品推荐

