Marco UnitTest - Prueba de tiempo

Junit, el marco de pruebas unitarias de Java (Pyunit es la implementación de JUnit) tiene una práctica opción de tiempo de espera. Si una prueba tarda más del tiempo especificado, se marcará como fallida.

El marco de prueba de Python no contiene ningún soporte para el tiempo de espera. Sin embargo, un módulo de tercera parte llamado timeout-decorator puede hacer el trabajo.

Descargue e instale el módulo desde -

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

  • Importar timeout_decorator en el código
  • Pon el decorador de tiempo de espera antes de la prueba
  • @timeout_decorator.timeout(10)

Si un método de prueba debajo de esta línea toma más tiempo que el tiempo de espera mencionado aquí (10 minutos), se generará un TimeOutError. Por ejemplo

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