【问题标题】:Verifying Qunit's results with Zombie.js使用 Zombie.js 验证 Qunit 的结果
【发布时间】:2012-09-13 15:52:22
【问题描述】:

我正在使用Qunit 进行测试驱动开发:在创建新函数时,我会为它编写测试、创建函数、重新加载页面,如果所有测试都通过了,我会继续前进……虽然这可行一开始还好,过了一会儿就开始变成一个耗时的过程,因为所有的测试都需要几秒钟才能运行,这就是我每次刷新浏览器都必须等待的时间。

为了解决这个问题,我考虑过引入Zombie.js 来执行无头测试:想法是让Zombie.js 不断检查网页(例如$ watch -n1 "node queryTheWebpage.js")并向我报告Qunits编码时的结果(偶尔,由于Zombie.js 不是“真正的”浏览器,我会打开浏览器并手动检查页面以进行验证)。

到目前为止,这是我的节点/僵尸代码:

browser.visit("http://localhost/mywebpage.html", function () {
        var qunit_tests = browser.query('body');
        console.log(qunit_tests.innerHTML);
});

在控制台输出中,我确实看到了Qunit 测试容器<ol id="qunit-tests"></ol>,但它是空的,这意味着当调用visit 回调函数时,测试还没有运行。

我尝试使用wait 函数等待测试运行,但没有成功:

function waitForQunitToEnd(window) {
    var last = window.document.querySelector('selectorOfMyLastTest');
    var first_failed = window.document.querySelector('li.failed');
    return (last || first_failed);
}

browser.visit("http://localhost/mywebpage.html", function () {
    browser.wait(waitForQunitToEnd, function() {
        var qunit_tests = browser.query('body');
        console.log(qunit_tests.innerHTML); // still gives me empty <ol id="qunit-tests"></ol>
    });    
});

我尝试使用waitFor 选项(例如设置为5000ms),但这也没有帮助。

Q1:我正在尝试做的事情是否有意义,或者是否有更简单的方法可以做类似的事情?

Q2:你知道我怎样才能让 Zombie.js 等待 Qunit 测试运行吗?

【问题讨论】:

标签: javascript jquery unit-testing qunit zombie.js


【解决方案1】:

我不知道它是否对你有帮助,但看看这个:http://api.qunitjs.com/QUnit.done/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    相关资源
    最近更新 更多