Как ограничить максимальное время работы для unit test?

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

Возможно ли создать pytest unit test, который завершится с ошибкой, если он не завершится за определенное время?

Ответы

Ответ 1

вы можете установить плагин pytest-timeout, а затем пометить свои тестовые функции таймаутом в секундах.

@pytest.mark.timeout(300)
def test_foo():
   pass

Посмотрите инструкции по загрузке и использованию плагинов на https://pypi.python.org/pypi/pytest-timeout