使用Zombie.jsvalidationQunit的结果

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

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

到目前为止,这里是我的节点/ Zombie代码片段:

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

在控制台输出中,我确实看到Qunit测试容器

    但它是空的,这意味着当调用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 
      }); });

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

      Q1:我正在尝试做些什么,或者有更简单的方法做类似的事情吗?

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

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