我正在使用Django
和Gitlab 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
我已经为python设置了 Test Coverage解析正则表达式
答案 0 :(得分:1)
您的正则表达式在Gitlab中为我工作。
但是,我遇到了类似的问题,因为仅重新运行作业不会获取新设置,因此您需要重新提交内容才能显示覆盖范围。
答案 1 :(得分:0)
我知道这是一个老问题,但这可能会帮助其他人将来看到这个问题。 除了在设置、CI/CD页面中设置测试覆盖率解析正则表达式外,您需要确保测试覆盖率百分比打印在CI 的控制台日志。打印的行应该与给定的正则表达式匹配。所以,Gitlab 可以解析并保存为代码覆盖率。
我已经更详细地回答了同一个问题:Gitlab coverage badge always unknow