2017-02-25 13 views
1

私のJSONがAJAX経由で正しく配列されるようにQUnitテストを作成しましたが、ブラウザでうまく動作しますが、グランント経由で実行するとエラーが発生します:グランツはajaxコールでqunitテストを実行しませんでした

ここ
Running "qunit:files" (qunit) task 
Testing test/index.html ... 
>> PhantomJS timed out, possibly due to: 
>> - QUnit is not loaded correctly. 
>> - A missing QUnit start() call. 
>> - Or, a misconfiguration of this task. 
Warning: 1 tests completed with 1 failed, 0 skipped, and 0 todo. 
0 assertions (in 0ms), passed: 0, failed: 0 Use --force to continue. 

Aborted due to warnings. 

私のテスト:

QUnit.test("TSO json loader test", function (assert) { 

    assert.expect(2); 
    var done = assert.async(); 
    var done1 = assert.async(); 

    var tsoGrid = new TsoGrid(".testCont"); 
    tsoGrid.loadJsonDataArray("/test/ajax.json", {}, function (jsonResult) { 
     assert.ok(jsonResult[0][0] === "Lorem ipsum", 'ajaxImportFromJson'); 
     done(); 
     var jsonRes = jsonResult.importFromJsonArray(); 

     var resArray = [["Lorem ipsum"], 
      ["Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante."], 
      [ 
       [["Lorem ipsum dolor sit amet, consectetuer adipiscing elit."], 
        ["Aliquam tincidunt mauris eu risus.", "Aliquam tincidunt mauris eu risus.1", "Aliquam tincidunt mauris eu risus.2"], 
        ["Vestibulum auctor dapibus neque."]] 
      ]]; 
     assert.ok(jsonRes.isEquals(resArray), 'AjaxImportFromJsonArray'); 
     done1(); 
    }); 

}); 

私はこれについてグーグルしようとするが、QUnitは()非同期に移動し、スタートを使用して停止した後、()と(停止)すべての答えが廃止されました:(

私は問題を見つける、ここで解決策:

私はそれを削除すると、私はそれを削除すると、自分自身のサイトのルートからクエリを設定し、今gruntからテストに合格!

tsoGrid.loadJsonDataArray("ajax.json", {}, function (jsonResult) {

パスから/test/を削除:

だから、私たちはこれに文字列を変更する必要があります。

+0

なぜあなたは 'done'と' done1'を持っています:

ここでの作業テストですか?両方を必要とすべきではありません。 – jakerella

+0

@ジャケレラもし私がそうなったら、ブラウザにエラーが表示されます: Too many calls to the 'assert.async' [email protected] 28 ms Source: \t @http://tso/test/test.js:137:9

+1

何ですか?いいえ...あなたは1つだけ必要です...最後のもの。 – jakerella

答えて

0

私はここでの問題、解決策を見つける:

は、私は私のサイトのルートからクエリのURLを設定し、それがローカルパスでなければなりません!

あなたはローカルファイルへのパスを変更する必要があります。私は私の場合、テストファイルを使って同じフォルダに保存しています。

QUnit.test("TSO json loader test", function (assert) { 

    assert.expect(2); 
    var done = assert.async(); 

    var tsoGrid = new TsoGrid(".testCont"); 
    tsoGrid.loadJsonDataArray("ajax.json", {}, function (jsonResult) { 
     assert.ok(jsonResult[0][0] === "Lorem ipsum", 'ajaxImportFromJson'); 
     var jsonRes = jsonResult.importFromJsonArray(); 

     var resArray = [["Lorem ipsum"], 
      ["Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante."], 
      [ 
       [["Lorem ipsum dolor sit amet, consectetuer adipiscing elit."], 
        ["Aliquam tincidunt mauris eu risus.", "Aliquam tincidunt mauris eu risus.1", "Aliquam tincidunt mauris eu risus.2"], 
        ["Vestibulum auctor dapibus neque."]] 
      ]]; 
     assert.ok(jsonRes.isEquals(resArray), 'AjaxImportFromJsonArray'); 
     done(); 
    }); 

}); 
関連する問題