Estrutura UnitTest - Teste de Tempo

Junit, a estrutura de teste de unidade Java (Pyunit é uma implementação de JUnit) tem uma opção útil de tempo limite. Se um teste demorar mais do que o tempo especificado, ele será marcado como reprovado.

A estrutura de teste do Python não contém nenhum suporte para tempo limite. No entanto, um módulo de terceira parte chamado decorador de tempo limite pode fazer o trabalho.

Baixe e instale o módulo de -

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

  • Importar timeout_decorator no código
  • Coloque o decorador de tempo limite antes do teste
  • @timeout_decorator.timeout(10)

Se um método de teste abaixo desta linha demorar mais do que o tempo limite mencionado (10 minutos) aqui, um TimeOutError será gerado. Por exemplo -

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()