teamcity-сообщения для gitlab? - PullRequest
0 голосов
/ 19 марта 2020

Я использую pytest с gitlab, и мне интересно, есть ли способ автоматического разбора результатов теста в конвейере, чтобы мне не пришлось go вручную выводить в терминал и искать имена тестов, которые провалился. Teamcity имеет такую ​​особенность, используя teamcity-сообщения.

Кто-нибудь знает, доступна ли такая функция и для gitlab?

1 Ответ

2 голосов
/ 19 марта 2020

Сводка теста в представлении запроса на слияние

Gitlab поддерживает анализ и отображение результатов теста из файла отчета JUnit. Зарезервированное слово для этого artifacts:reports:junit. Вот пример конфигурации CI, которая генерирует отчет JUnit при запуске pytest и делает его доступным для Gitlab:

stages:
  - test

test:
  stage: test
  script:
    - pytest --junitxml=report.xml
  artifacts:
    reports:
      junit: report.xml

Вот как будут выглядеть результаты, представленные в представлении запроса на слияние:

gitlab-junit

Более подробную информацию (и примеры для других языков) можно найти в документации Gitlab: Отчеты о тестировании JUnit .

Функция предварительного просмотра: сводка тестов в представлении конвейера

На странице do c, указанной выше, вы также можете найти функцию предварительного просмотра дополнительной карты Tests в виде конвейера:

gitlab-junit-pipeline

Эта функция доступна с 12.5 и в настоящее время должна быть явно включена администратором через флаг :junit_pipeline_view.

Редактировать: ваш случай

Подводя итог, я бы переработал команду вызова pytest и добавил бы раздел отчетов в artifacts в .gitlab-ci.yml:

test:
  script:
    - pytest -vv
      --cov=${ROOT_MODULE}
      --cov-branch
      --cov-report term-missing
      --cov-report xml:artifacts/coverage.xml
      --junitxml=artifacts/junit.xml

  artifacts:
    paths:
      - artifacts/coverage.xml
      - artifacts/junit.xml  # if you want the JUnit report to be also downloadable
    reports:
      junit: artifacts/junit.xml
...