2017-12-04 14 views
3

AVAを使用して非同期テストを作成し、テストケースごとにカスタムタイムアウトを設定する必要があります。私はこの可能性と私のテストに関する情報を見つけていませんでしたが、このように思える:AVA:テストケースごとに異なるタイムアウトを設定する

import test from 'ava'; 
 

 
test.cb('super test', t => { 
 
    setTimeout(() => { 
 
     t.is(1, 1); 
 
     t.end(); 
 
    }, 10000); 
 

 
    setTimeout(() => { 
 
     t.fail("Timeout error!"); 
 
     t.end(); 
 
    }, 100); 
 
});

は誰がAVAでこれを実装するための別の方法を知っていますか?

答えて

2

AVAにこのようなものが含まれているかどうかわかりませんが、まれに使用されているようです。

しかし、あなたは、「タイムアウトテスト」のいくつかの種類を実装するユーティリティ関数を作成することができます。

import test from 'ava'; 

function timeout (ms, fn) { 
    return function (t) { 
     setTimeout(() => { 
      t.fail("Timeout error!") 
      t.end() 
     }, ms) 
     fn(t) 
    } 
} 

test.cb('super test', timeout(10000, t => { 
    t.is(1, 1); 
})); 
+0

ありがとう、私は問題を解決するあなたのアプローチが好きでした、そして今私はプロジェクトでそれを使用します - それは私がコードの数を減らし、より読みやすくすることができました。 –

1

AVA自身でこれをサポートするために、未解決の問題があります:https://github.com/avajs/ava/issues/1565

それがあなたの土地まで」自分でタイマーを管理する必要があります。通常のテストが完了したら、それをクリアすることを忘れないでください。

+0

ありがとう、私は以前この問題を見てきましたが、私は誰かがこれを行う方法を知っていることを望んでいました。 –

関連する問題