4

我正在尝试创建一个.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

但我无法在我的 MR 中看到新功能。

有没有人有一个可行的解决方案来激活该选项?

参考页

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

4

2 回答 2

1

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

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

于 2021-02-18T07:56:32.890 回答
0

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

所以在你的例子中,而不是:

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

做:

- python -m pytest -vvv  src --cov=src
- coverage xml -o coverage.xml
于 2021-02-18T07:01:14.950 回答