UnitTest Framework - การทดสอบเวลา

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()