Gitlab 覆盖率徽章不起作用

Anu*_*TBE 5 gitlab gitlab-ci-runner

我正在Django使用Gitlab CI/CDpytest测试代码以及pytest-cov生成覆盖率报告来部署应用程序

我的 .gitlab-ci.yml

stages:
  - test
  - deploy

image: python:3.6

test:
  stage: test
  script:
    - pip install pipenv
    - pipenv install
    - pipenv run py.test src/
  artifacts:
    paths:
      - htmlcov/

pages:
  stage: deploy
  dependencies:
    - test
  script:
    - mv htmlcov/ public/
  artifacts:
    paths:
      - public
    expire_in: 30 days
  only:
    - master

staging:
  stage: deploy
  script:
    - apt-get update -qy
    - apt-get install -y ruby-dev
    - gem install dpl
    - dpl --provider=heroku --app=app-staging --api-key=$HEROKU_PRODUCTION_API_KEY
  only:
    - master

production:
  stage: deploy
  script:
    - apt-get update -qy
    - apt-get install -y ruby-dev
    - gem install dpl
    - dpl --provider=heroku --app=app-production --api-key=$HEROKU_PRODUCTION_API_KEY
  when: manual
  only:
    - master
Run Code Online (Sandbox Code Playgroud)

由于存储库位于组命名空间下,因此覆盖率报告的 url 为

https://<group>.gitlab.io/<repository>/
Run Code Online (Sandbox Code Playgroud)

对于覆盖率报告,

[![coverage report](https://gitlab.com/<group>/<repository>/badges/master/coverage.svg?job=coverage)](https://<group>.gitlab.io/<repository>/)
Run Code Online (Sandbox Code Playgroud)

但这是显示 Unknown

在此处输入图片说明

我已经为 python设置了测试覆盖解析正则表达式

在此处输入图片说明

Rez*_*our 5

我知道这是一个老问题,但这可能会帮助其他人将来看到这个问题。除了在设置CI/CD页面中设置测试覆盖率解析正则表达式外,您还需要确保测试覆盖率百分比打印在 CI 控制台日志中的某个位置。打印的行应该与给定的正则表达式匹配。因此,Gitlab 可以解析并将其保存为代码覆盖率百分比。

我已经更详细地回答了同样的问题:Gitlab覆盖徽章总是未知


smi*_*ley 2

你的正则表达式在 Gitlab 中对我有用。

不过,我也遇到过类似的问题,因为仅重新运行作业并不会获取新的设置,因此您需要进行新的提交才能使覆盖范围显示在作业输出中。