Junit,Java单元测试框架(Pyunit是JUnit的实现)有一个方便的超时选项.如果测试花费的时间超过指定时间,则会将其标记为失败.
Python的测试框架不包含任何超时支持.但是,名为timeout-decorator的第三部分模块可以完成这项工作.
下载并安装模块:
https://pypi.python.org/packages/source/t/timeout-decorator/timeout-decorator-0.3.2.tar.gz
在代码中导入timeout_decorator
在测试前放置超时装饰器
@timeout_decorator.timeout(10)
如果是此行下方的测试方法需要超过此处提到的超时(10分钟),将引发TimeOutError.例如 :
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()