Устаревание PyTest: значение по умолчанию junit_family изменится на xunit2 - PullRequest
5 голосов
/ 13 февраля 2020

Я получаю предупреждение об устаревании из своих конвейеров на circleci.

Сообщение .

/home/circleci/evobench/env/lib/python3.7/site-packages/_pytest/junitxml.py:436: PytestDeprecationWarning: The 'junit_family' default value will change to 'xunit2' in pytest 6.0.

Команда

- run:
    name: Tests
    command: |
      . env/bin/activate
      mkdir test-reports
      python -m pytest --junitxml=test-reports/junit.xml

Как мне изменить команду для использования xunit? Возможно ли использовать инструмент по умолчанию, как указано в сообщении? Я имею в виду без спецификации xunit или junit.

Вот полный конвейер .

Ответы [ 2 ]

4 голосов
/ 18 марта 2020

Выполните вашу команду следующим образом.

с xunit2

python -m pytest -o junit_family=xunit2 --junitxml=test-reports/junit.xml

с xunit1

python -m pytest -o junit_family=xunit1 --junitxml=test-reports/junit.xml или

python -m pytest -o junit_family=legacy --junitxml=test-reports/junit.xml

Здесь подробно описывается изменение:

Значение по умолчанию для параметра junit_family изменится на xunit2 в pytest 6.0, учитывая, что это является версией, поддерживаемой по умолчанию в современных инструментах, которые управляют этим типом файла.

Чтобы сгладить переход, pytest выдаст предупреждение в случае, если в командной строке задана опция --junit xml но junit_family явно не настроен в файле pytest.ini:

PytestDeprecationWarning: The `junit_family` default value will change to 'xunit2' in pytest 6.0.   Add `junit_family=legacy` to your

pytest.ini, чтобы отключить это предупреждение и сделать ваш пакет совместимым.

Чтобы отключить это предупреждение, пользователям просто нужно чтобы явно настроить параметр junit_family:

[pytest]
junit_family=legacy
2 голосов
/ 13 февраля 2020

В вашем файле pytest.ini добавьте следующую строку:

junit_family=legacy

Если вы хотите сохранить поведение по умолчанию для опции --junitxml. Или вы можете принять новую версию xunit2, но не определите явно переменную junit_family.

По сути, предупреждение говорит о том, что в разделе

run           
  name: Tests

вы не указываете переменную junit_family. Вам нужно начать явно определять его, чтобы удалить предупреждение или принять новое значение по умолчанию.

В этой теме более подробно рассказывается, где найти файл .ini для pytest.

...