Остановить pytest при ошибках, но не при сбоях - PullRequest
1 голос
/ 04 августа 2020

Pytest сообщает error, если утверждение не выполняется в приспособлении инициализации, и fail, если тест терпит неудачу после запуска приспособления инициализации.

Чтобы остановить набор тестов при ошибках или сбоях, можно использовать следующие флаги:

-x, --exitfirst exit instantly on first error or failed test.

Как я могу остановить набор тестов после первой ошибки, но продолжить работу в случае сбоев?

Ответы [ 2 ]

1 голос
/ 04 августа 2020

Это несложно реализовать самому. Минимальный пример (непроверенный):

# conftest.py

from _pytest.main import Failed


def pytest_runtest_logreport(report):
    if report.failed and report.when in ('setup', 'teardown'):
        raise Failed()

Это будет продолжаться при сбоях теста (report.failed and report.when == 'call'), но останавливаться при ошибках установки / разрыва.

0 голосов
/ 05 августа 2020

Замена всех assert на pytest.exit("some_message") в устройстве инициализации делает свое дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...