web-dev-qa-db-ja.com

単体テストの最大実行時間を制限するにはどうすればよいですか?

私は現在、失敗するまでに長い時間がかかるか、無期限に実行される可能性があるいくつかの単体テストを実行しています。テストが成功すると、常に一定の時間内に完了します。

特定の時間内に完了しないと失敗するpytestユニットテストを作成することはできますか?

30
shuttle87

pytest-timeoutプラグインをインストールして、テスト関数に秒単位のタイムアウトをマークできます。

@pytest.mark.timeout(300)
def test_foo():
   pass

https://pypi.python.org/pypi/pytest-timeout でプラグインのダウンロードと使用手順を確認してください

46
Mrinal Shukla