Unittest-framework-time-test

提供:Dev Guides
移動先:案内検索

UnitTest Framework-タイムテスト

JavaユニットテストフレームワークであるJunit(PyunitはJUnitの実装)には、タイムアウトの便利なオプションがあります。 テストに指定された時間以上かかる場合、失敗としてマークされます。

Pythonのテストフレームワークには、タイムアウトのサポートは含まれていません。 ただし、timeout-decoratorと呼ばれる3番目の部分のモジュールがジョブを実行できます。

モジュールをダウンロードしてインストールします-

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