使用 Zombie.js 验证 Qunit 的结果

2024-02-10

我正在进行测试驱动开发Qunit http://qunitjs.com/:当创建一个新函数时,我为它编写测试,创建函数,重新加载页面,如果所有测试都通过,我就继续...虽然一开始工作正常,但之后它开始成为一个耗时的过程一段时间,因为所有测试都需要几秒钟才能运行,这就是我每次刷新浏览器时都必须等待的时间。

为了解决这个问题,我考虑引入Zombie.js http://zombie.labnotes.org/执行无头测试:想法是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 测试运行吗?


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Zombie.js 验证 Qunit 的结果 的相关文章