为了不让某个用例挂死导致整个测试无法完成,有必要对用例设置超时。
参考网上【python实现timeout修饰器】的方法,给测试用例设置超时,可以方便的解决这个问题:
from kthread import KThread
class testdemo1(TestCase):
@timeout(3)
def testAAA(self):
time.sleep(2)
@timeout(3)
def testBBB(self):
time.sleep(5)
class testdemo2(TestCase):
@timeout(3)
def test111(self):
time.sleep(2)
@timeout(3)
def test222(self):
time.sleep(5)
执行效果:
.E.E
=======================================
ERROR: testBBB (__main__.testdemo1)
---------------------------------------
Traceback (most recent call last):
File "retry.py", line 120, in _
raise Timeout(u'%s run timeout %d s
Timeout: testBBB run timeout 3 seconds.
=======================================
ERROR: test222 (__main__.testdemo2)
---------------------------------------
Traceback (most recent call last):
File "retry.py", line 120, in _
raise Timeout(u'%s run timeout %d s
Timeout: test222 run timeout 3 seconds.
---------------------------------------
Ran 4 tests in 10.031s
FAILED (errors=2)