单元测试框架 - 时间测试



JUnit(Java 单元测试框架,Pyunit 是 JUnit 的实现)有一个好用的超时选项。如果一个测试花费的时间超过指定时间,它将被标记为失败。

Python 的测试框架不包含任何超时支持。然而,一个名为超时装饰器的第三方模块可以完成这个工作。

从以下位置下载并安装模块 -

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

  • 在代码中导入 timeout_decorator
  • 在测试之前添加 timeout 装饰器
  • @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()
广告