在Gitlab上激活python代码的测试覆盖率



我正试图创建一个.gilab-ci.yml步骤,用pytest+pytest-cov激活gitlab的测试覆盖率。

当前不成功的代码段

我试过:

.only-default: &only-default
only:
- merge_requests
stages:
- test
test-py:
stage: test
image: "python:3.8"
script:
- pip install -r requirements.txt
- python -m pytest -vvv  src --cov-report xml --cov=src
artifacts:
reports:
cobertura: coverage.xml

在我的项目中使用的其他包中,requirements.txt文件包含pytest和pytest-cov。

输出的关联管道:

Uploading artifacts...
coverage.xml: found 1 matching files and directories 
Uploading artifacts as "cobertura" to coordinator... ok  id=858390324 responseStatus=201 Created token=6uBetoBX

但是我看不到先生的新功能

有人有有效的解决方案来激活该选项吗?

参考页

https://docs.gitlab.com/ee/user/project/merge_requests/test_coverage_visualization.html

这个问题的解决方案可以在gitlab repo中的问题中找到:

https://gitlab.com/gitlab-org/gitlab/-/issues/285086

文档指出,需要coverage.py才能将报告转换为使用完整的相对路径。没有转换,信息就不会显示。

因此,在您的示例中,而不是:

- python -m pytest -vvv  src --cov-report xml --cov=src

Do:

- python -m pytest -vvv  src --cov=src
- coverage xml -o coverage.xml

最新更新