Фреймворк UnitTest - Тест времени

Junit, среда модульного тестирования Java (Pyunit - это реализация JUnit), имеет удобную возможность тайм-аута. Если проверка занимает больше указанного времени, она будет отмечена как неудавшаяся.

Среда тестирования Python не поддерживает тайм-аут. Однако эту работу может выполнить модуль третьей части, называемый timeout-decorator.

Загрузите и установите модуль из -

https://pypi.python.org/packages/source/t/timeout-decorator/timeout-decorator-0.3.2.tar.gz

  • Импортировать timeout_decorator в код
  • Поставить декоратор тайм-аута перед тестом
  • @timeout_decorator.timeout(10)

Если тестовый метод ниже этой строки занимает больше указанного здесь тайм-аута (10 минут), возникает ошибка TimeOutError. Например -

import time
import timeout_decorator

class timeoutTest(unittest.TestCase):

   @timeout_decorator.timeout(5)
   def testtimeout(self):
      print "Start"
   for i in range(1,10):
      time.sleep(1)
      print "%d seconds have passed" % i
      
if __name__ == '__main__':
   unittest.main()