2017-01-31 9 views
10

mochaテストケースでフックする前にタイムアウト値を設定したい。 mochaのコマンドラインに-t 10000を追加することでこれを行うことができますが、これはすべてのテストケースのタイムアウト値を変更します。mochaでフックする前にタイムアウトを設定するには?

describe('test ',() => { 

    before((done) => { 
     this.timeout(10000); 
     ... 

それはtimeoutが定義されていないラインthis.timeout(1000)文句を言うだろう:私はプログラム的に以下のタイムアウトを変更する方法は私のコードで見つけたいです。前のフックでタイムアウトを設定する方法。

答えて

23

describeのすべてのテストに影響を与えたい場合は、フックではなくdescribeブロックにタイムアウトを設定する必要があります。

describe('test', function() { 
    this.timeout(10000); 

    before(...); 

    it(...); 
}); 

をあなたは、あなたが矢を使用することはできませんモカに渡すコールバックでthisを使用するすべての場所で:しかし、あなたはむしろ矢印機能よりもdescribeにコールバックとして「定期的に」機能を使用する必要があります関数。 Mochaで設定できる値はthisの「通常の」関数を使用する必要があります。矢印機能を使用する場合、thisの値は、Mochaが望むものではなく、コードは失敗します。

あなたあなたの前に、フックのために別のタイムアウトを設定しますが、考慮すべき二つのものがありますができますあまりにもそのように矢印の機能ではなく、「通常の」機能を使用する必要があるだろう。ここ

  1. は、 :

    before(function (done) { 
        this.timeout(10000); 
    
  2. これはのみbeforeフックのタイムアウトを設定しますし、あなたのテストに影響を与えません。

+0

完璧な答え:) – greuze

関連する問題