2016-09-02 5 views
0

QUnit has a number of callbacks( `QUnit.done()`として期待される動作していない):QUnitがすべてのテストの実行を終了したときのコールバック。など、

  • QUnit.done()
  • QUnit.moduleDone()
  • QUnit.testDone()

問題はQUnit.done()のように動作しないということです期待される。実際には、各テストの後に起動します。これは予想される動作ですか?

私はすべてのテストをQUnitに登録します(残念なことに)最初に読み込まれるアプリケーションに依存するため、以下のようにページが読み込まれると(jQueryで)読み込まれます。そして、それらは複数のハンドラに分割されているので、テストは異なるファイルに置くことができます。

$(function(){ 
    QUnit.module("Module 1"); 
     QUnit.test("Test 1", function(assert){ 
      assert.ok(true); 
     }); 
    }); 
}); 

$(function(){ 
    QUnit.module("Module 2"); 
     QUnit.test("Test 2", function(assert){ 
      assert.ok(true); 
     }); 
    }); 
}); 

これは、各テストの後でdone()が呼び出される理由ですか? 1つのファイルですべてのテストを行う以外に、これを回避する方法はありますか?

+0

すべてのテストが完了したら関数を呼び出すことができます – guest271314

+0

どこで 'done'ハンドラを登録しますか?それは* jQueryの準備ができたメソッドの中にあるのでしょうか?私たちを見せてもらえますか? – jakerella

+0

'done'コールバック_does_は明確です。ここに[それを示すフィドル](https://jsfiddle.net/rp2mfrv1/)があります。また、上記のサンプルテストコードには問題があります。用意されている各関数内に余分な '});があります。 – jakerella

答えて

0

この回答はsimilar questionで見つかりました。

トリックはQUnit.config.autostart = falseに設定し、すべてのテストがロードされてアプリケーションがロードされたら、テストを開始します。

関連する問題