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