Framework UnitTest - Test de temps

Junit, le framework de test unitaire Java (Pyunit est l'implémentation de JUnit) a une option pratique de timeout. Si un test prend plus de temps que spécifié, il sera marqué comme ayant échoué.

Le cadre de test de Python ne contient aucun support pour le délai d'expiration. Cependant, un troisième module appelé timeout-decorator peut faire le travail.

Téléchargez et installez le module à partir de -

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

  • Importer timeout_decorator dans le code
  • Mettre le décorateur de délai avant le test
  • @timeout_decorator.timeout(10)

Si une méthode de test en dessous de cette ligne prend plus que le délai mentionné (10 minutes) ici, une TimeOutError sera déclenchée. Par exemple -

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