【问题标题】:Cobertura coverage report not showing in MR's diffCobertura 覆盖报告未显示在 MR 的差异中
【发布时间】:2022-11-04 14:49:53
【问题描述】:

我最近将 cobertura 覆盖率报告添加到我的存储库中,但它仍然没有显示 MR 差异中的覆盖率。

这是我的.gitlab-ci.yml 的工作,它生成了覆盖率报告:

coverage-report:
  stage: coverage
  script:
    - tox -e coverage-report
  coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
  artifacts:
    name: "coverage"
    paths:
      - public/coverage
    expire_in: 1 week
    reports:
      cobertura: public/coverage/coverage.xml
    expose_as: "coverage"

这是我的tox.ini

[tox]
envlist =
    coverage-report
minversion = 3.4

[testenv:coverage-report]
basepython = python2.7-32
skip_install = True
deps =
  coverage
commands =
  coverage run -m pytest -s -vv -x --junitxml=public/test-report.xml tests/
  coverage report
  coverage html
  coverage xml

我很确定报告一切顺利,因为它的 XML 不仅存在于 public/coverage 下(我可以通过已发布的工件看到),而且覆盖率百分比摘要也显示在作业和 MR 中。但是覆盖范围仍然没有出现在 MR 的差异中。我还尝试打开浏览器的“网络”选项卡并查找merge_requests/26/coverage_reports.json HTTP 请求,但该请求为空(更具体地说,响应为{"files":{}}),我认为这不应该发生。

我正在使用 Python 2.7-32 和 Coverage.py 来获取报告。我的 GitLab 是自托管的,版本为 14.9.5-eeHere 是下载我的coverage.xml 的链接。这不是完整的覆盖范围,但它显示了 2 个文件,这些文件显示在 MR 的差异中,但没有覆盖信息。

【问题讨论】:

    标签: python gitlab gitlab-ci code-coverage tox


    【解决方案1】:

    以这种形式给coverage_report

      artifacts:
        expire_in: 1 week
        paths:
          - public/coverage
        reports:
          coverage_report:
            coverage_format: cobertura
            path: public/coverage/coverage.xml
    

    有时,覆盖范围可能需要一些时间才能反映在差异中。 Gitlab 完成后会运行一个后台进程,它应该会显示出来。有时对我来说需要一段时间。

    【讨论】:

    • 我已经等了好几个小时和几天了。它永远不会出现。另外,这种写法只适用于 GitLab 版本 > 15。我的是 14.9.5,所以我用旧的方式写
    猜你喜欢
    • 2015-07-15
    • 2017-01-03
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 2017-11-01
    相关资源
    最近更新 更多