2011-07-01 18 views
8

少し遅いテストの負荷が上がったときにうまくいくので、実行に一定の時間(例えば500ms)以上かかるとテストに失敗します。突然この大きな遅延が毎回ありますテストスイートを実行します。すでにこれを行うプラグインやその他のものはありますか?ノーズが遅いテストに失敗する

答えて

7

「壊れた」という意味を変えるのは悪い考えです。

失敗した「赤い」テストの意味は、「この機能が壊れている」以外のものであってはなりません。何か他のことは、テストの価値を薄める危険性があります。

あなたはこれを実装して、テストの一握りが失敗来週、それは

  • あなたのテストがゆっくり実行していることの指標になりますか?
  • コードが壊れていますか?
  • 上記の両方を同時にですか?

は、私はあなたのビルドプロセスからMIを収集し、構築遅いテストを発見するために、それを監視するが、赤平均「壊れた機能を」聞かせてというし、「壊れた機能性および/または遅いテストする方が良いだろう示唆しています。 "

+1

ありがとう!それは理にかなっている。テストケース実行時間のレポートを作成するための提案はありますか? –

+0

@ThomasParslow私はテスト時間を測定するために[pinocchioのストップウォッチ機能](http://darcs.idyll.org/~t/projects/pinocchio/doc/#id12)を使用しています。単純なPythonスクリプトで処理できるpickleを生成します。 –

11

タイミングが重要である場合(例えば、リアルタイム要件)について:

http://nose.readthedocs.org/en/latest/testing_tools.html

nose.tools.timed(limit)

テストが合格する指定された制限時間内に終了しなければなりません。

使用例:あなたの答えのための

from nose.tools import timed 
@timed(.1) 
def test_that_fails(): 
    time.sleep(.2) 
+1

それがうまくいくといいでしょう – Jack

関連する問題