Ответ 1
Насколько я знаю, unittest
не содержит поддержки тайм-аутов тестов.
Вы можете попробовать timeout-decorator
библиотеку из PyPI. Примените декоратор к индивидуальным тестам, чтобы они прекратили работу, если они занимают слишком много времени:
import timeout_decorator
class TestCaseWithTimeouts(unittest.TestCase):
# ... whatever ...
@timeout_decorator.timeout(LOCAL_TIMEOUT)
def test_that_can_take_too_long(self):
sleep(float('inf'))
# ... whatever else ...
Чтобы создать глобальный тайм-аут, вы можете заменить вызов
unittest.main()
с
timeout_decorator.timeout(GLOBAL_TIMEOUT)(unittest.main)()