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

如何通过GitHub发布CI流程生成的HTML测试覆盖率报告

GitHub Actions生成HTML覆盖率报告多分支发布方案

核心思路:利用GitHub Pages单分支发布的规则,将不同分支生成的报告按分支名归类存储到独立的gh-pages分支的对应目录下,既不需要将报告提交到业务代码分支,也能实现所有分支报告的在线访问。

前置准备

  • 你的仓库先创建一个空的gh-pages分支,初始化后不需要额外提交内容。

完整Workflow配置调整步骤

你现有工作流已经完成了docker启动、环境配置、测试执行生成报告的步骤,仅需要在测试步骤后新增以下配置:

  1. 从docker容器中拷贝报告到工作目录(如果测试是在容器内执行的)
    执行命令将容器内生成的htmlcov报告目录拷贝到Actions的当前工作目录,示例命令:
    docker cp 容器名:/app/htmlcov ./htmlcov
    
  2. 按分支名归类报告目录
    避免不同分支的报告互相覆盖,将当前分支的报告放到对应分支名的目录下:
    mkdir -p report/${{ github.ref_name }}
    mv ./htmlcov/* report/${{ github.ref_name }}/
    
  3. 推送报告到gh-pages分支
    新增部署步骤,将归类好的报告推送到gh-pages分支,配置示例:
    - name: 部署覆盖率报告到GitHub Pages
      uses: peaceiris/actions-gh-pages@v4
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        publish_dir: ./report
        keep_files: true
    

    配置项keep_files: true为必填,确保每次推送仅更新当前分支的报告目录,不会删除其他分支的历史报告。

  4. 配置GitHub Pages发布源
    进入仓库设置的Pages页面,将发布源设置为gh-pages分支的根目录,保存后等待几分钟部署生效。

报告访问方式

假设你的GitHub Pages访问地址为https://你的用户名.github.io/你的仓库名,不同分支的报告访问地址对应为:

  • main分支:https://你的用户名.github.io/你的仓库名/main/
  • 其他功能分支:https://你的用户名.github.io/你的仓库名/分支名/

备选临时方案(适合短期查看)

如果不需要长期保留报告,也可以直接将生成的HTML报告作为Actions产物上传,配置示例:

- name: 上传覆盖率报告为Actions产物
  uses: actions/upload-artifact@v4
  with:
    name: coverage-report-${{ github.ref_name }}
    path: ./htmlcov
    retention-days: 30 # 自定义保留天数,最多90天

上传后可以在对应工作流的运行详情页直接查看报告,不需要下载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 16:39:03