咕噜没跑qunit测试与Ajax调用
问题描述:
我创建QUnit的测试,以确保我的JSON正确加载和通过AJAX解析到数组,这一切都在浏览器工作正常,但是当我通过咕噜运行它,我得到错误:咕噜没跑qunit测试与Ajax调用
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移动后异步(),并使用启动停止()和stop()所有的答案都是过时:(
我发现问题,在这里的解决方案:
我设置了从我的网站的根查询的URL,当我删除它,设置为文件本身,现在它通过测试从咕噜!
所以我们需要改变字符串这一点:
tsoGrid.loadJsonDataArray("ajax.json", {}, function (jsonResult) {
从通道中取出/test/
。
答
我发现问题,解决这里:
我设置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();
});
});
为什么你'done'和'done1'?你不应该同时需要。 – jakerella
@jakerella Becouse如果我这样做,我在浏览器中得到错误:
Too many calls to the 'assert.async' [email protected] 28 ms Source: \t @http://tso/test/test.js:137:9
–什么?不......你只需要一个......最后一个。 – jakerella