Gitlab Coverage徽章不起作用

时间:2018-07-08 00:28:48

标签: gitlab gitlab-ci-runner

我正在使用DjangoGitlab CI/CD部署pytest应用程序以测试代码,并使用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

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

https://<group>.gitlab.io/<repository>/

对于覆盖率报告,

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

但这显示Unknown

enter image description here

我已经为python设置了 Test Coverage解析正则表达式

enter image description here

2 个答案:

答案 0 :(得分:1)

您的正则表达式在Gitlab中为我工作。

但是,我遇到了类似的问题,因为仅重新运行作业不会获取新设置,因此您需要重新提交内容才能显示覆盖范围。

答案 1 :(得分:0)

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

我已经更详细地回答了同一个问题:Gitlab coverage badge always unknow