單元測試框架 - 時間測試



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()
廣告
© . All rights reserved.