Framework UnitTest - Test del tempo

Junit, il framework di test di unità Java (Pyunit è l'implementazione di JUnit) ha una comoda opzione di timeout. Se un test richiede più del tempo specificato, verrà contrassegnato come non riuscito.

Il framework di test di Python non contiene alcun supporto per il timeout. Tuttavia, un terzo modulo chiamato timeout-decorator può fare il lavoro.

Scarica e installa il modulo da -

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

  • Importa timeout_decorator nel codice
  • Metti decoratore timeout prima del test
  • @timeout_decorator.timeout(10)

Se un metodo di test al di sotto di questa riga richiede più del timeout menzionato (10 minuti) qui, verrà sollevata un'eccezione TimeOutError. Ad esempio:

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