GitLab 测试的多个覆盖率报告和徽章

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

在我们托管在 GitLab 服务器上的 Mono 存储库中,我们有多种类型的测试,例如,

  1. C,
  2. 皮顿,并且,
  3. Java,

在 CI/CD 管道设置中运行(GitLab 版本为 v16.8.1)。

对于所有这些测试,都会创建 Cobertura 覆盖率 XML 报告。

.gitlab-ci.yml
看起来像这样:

test_c:
  stage: test
  coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
  script:
    - ./test_script_c.sh
  artifacts:
    reports:
      coverage_report:
        coverage_format: cobertura
        path: build/tests/c/CoberturaCoverageScripts.xml

test_python:
  stage: test
  coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
  script:
    - ./test_script_python.sh
  artifacts:
    reports:
      coverage_report:
        coverage_format: cobertura
        path: build/tests/python/CoberturaCoverageScripts.xml

test_java:
  stage: test
  coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
  script:
    - ./test_script_java.sh
  artifacts:
    reports:
      coverage_report:
        coverage_format: cobertura
        path: build/tests/java/CoberturaCoverageScripts.xml

现在有一个缺点,那就是

  1. 存储库的登陆页面上仅报告了一个覆盖率数字,
  2. MR 上仅报告一个覆盖范围编号,并且
  3. 仅在存储库的登陆页面上创建一个覆盖范围徽章,

尤其是对于MR来说,这是非常糟糕的。因为我只知道整个项目的测试覆盖率是这样的,但我需要知道最重要的覆盖率(例如,C)并没有变得更糟,并且没有被改进的测试覆盖率所捕获,例如,Java 部分项目。

GitLab CI Test Coverage

是否可以选择至少在 MR 上显示所有三个覆盖率报告,即找到显示多个测试覆盖率数字的 GitLab CI/CD 管道设置。

gitlab gitlab-ci
1个回答
0
投票

这只是部分答案,但是当您将鼠标指向 MR 中覆盖率值旁边的

?
时,您可以看到不同作业的覆盖率结果。这是我的一个项目的屏幕截图示例:

不过,我也很高兴看到一个关于如何为每项工作创建单独徽章的解决方案。

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