我正在使用 Gitlab CI/CD
和 pytest
部署 Django
应用程序来测试代码和 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
由于存储库位于组命名空间下,因此覆盖率报告的 URL 为
https://<group>.gitlab.io/<repository>/
对于覆盖率报告,
[![coverage report](https://gitlab.com/<group>/<repository>/badges/master/coverage.svg?job=coverage)](https://<group>.gitlab.io/<repository>/)
但这显示未知
我已经为 python 设置了测试覆盖率解析正则表达式
最佳答案
我知道这是一个老问题,但这可能会帮助其他人将来看到这个问题。 除了在设置、CI/CD页面中设置测试覆盖率解析正则表达式之外,您需要确保测试覆盖率百分比打印在CI 的控制台日志。打印的行应该与给定的正则表达式匹配。因此,Gitlab 可以解析并将其保存为代码覆盖率百分比。
我已经更详细地回答了同一问题:Gitlab coverage badge always unknow
关于Gitlab 覆盖范围徽章不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51227950/