通过python自带的unittest框架执行测试套的时候,如果其中一个测试用例执行出问题,可能会无限循环等待或者等待时间超长,这个时候如果能设置超时时间,那么就可以暂时跳过这个错误用例,继续执行后续的用例。
对于这个问题,除了在用例中设置执行的时间,还可以通过装饰器来解决。
import unittest
import timeout_decorator
import time
class TimeOut(unittest.TestCase):
def setUp(self):
pass
@timeout_decorator.timeout(seconds=5)
def test(self):
for i in range(0, 40):
print i
time.sleep(1)
def tearDown(self):
pass
if __name__ == '__main__':
unittest.main()
从执行的结果看,执行到第六次循环的时候,因为超时用例执行失败。原因:超时