Verifying Qunit's results with Zombie.js

半腔热情 提交于 2019-12-13 15:36:07

问题


I am doing test-driven development with Qunit: when creating a new function, I write tests for it, create the function, reload the page, and if all the tests pass I move on... Whilst this works fine at the beginning, it starts to become a time consuming process after a while as all the tests take several seconds to run, and that's the time I have to wait for every time I refresh my browser.

In an attempt to workaround that problem, I thought about introducing Zombie.js to perform head-less testing: the idea is to have Zombie.js continuously check the webpage (e.g. $ watch -n1 "node queryTheWebpage.js") and report to me Qunits's results while coding (once in a while, as Zombie.js isn't a "real" browser, I would open up a browser and check the page manually to validate).

So far here is what I have for my node/Zombie piece of code:

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

In the console output I do see the Qunit tests container <ol id="qunit-tests"></ol> but it is empty which means when the visit callback function is called, the tests haven't run.

I've tried to use the wait function to wait for the tests to run, but unsuccessfully:

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>
    });    
});

I tried to play with the waitFor option (e.g. set to 5000ms) but that didn't help either.

Q1: Is what I'm trying to do making sense, or is there a much simpler way of doing something similar?

Q2: Do you know how I could get Zombie.js to wait for the Qunit tests to run?


回答1:


I don't know if it will help you but look this : http://api.qunitjs.com/QUnit.done/



来源:https://stackoverflow.com/questions/12526889/verifying-qunits-results-with-zombie-js

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!