Как изменить статус Pytest, сохранив исходное поведениеPython

Программы на Python
Anonymous
Как изменить статус Pytest, сохранив исходное поведение

Сообщение Anonymous »

Я пытаюсь включить перехватчик pytest_report_teststatus в conftest.py.
Однако простое включение этого перехватчика, похоже, изменяет поведение TerminalReporter, так что он затем печатает статус каждого теста 3 раза (вместо 1 раза), что, как я предполагаю, представляет собой настройку, вызов и демонтаж. Это происходит, даже если сам хук не изменен.
Буду очень признателен за любую информацию о том, почему это происходит и как это преодолеть.
Используя следующий файл conftest.py
# Original, unmodified hook

def pytest_report_teststatus(report):
if report.passed:
letter = "."
elif report.skipped:
letter = "s"
elif report.failed:
letter = "F"
if report.when != "call":
letter = "f"
return report.outcome, letter, report.outcome.upper()

Результаты каждого теста записываются на терминал 3 раза
test_foo.py::test_output_1 PASSED
test_foo.py::test_output_1 PASSED
test_foo.py::test_output_1 PASSED
test_foo.py::test_output_2 PASSED
test_foo.py::test_output_2 PASSED
test_foo.py::test_output_2 PASSED
test_foo.py::test_output_3 PASSED
test_foo.py::test_output_3 PASSED
test_foo.py::test_output_3 PASSED


Подробнее здесь: https://stackoverflow.com/questions/706 ... l-behavior

Вернуться в «Python»