无法使用phantomjs-node运行Mocha测试

时间:2016-02-23 15:25:56

标签: node.js phantomjs mocha

我正在尝试使用phantomjs-node和mocha来运行一些测试

var phantom = require('phantom');
phantom.create().then(function(ph) {
    ph.createPage().then(function(page) {
        page.open('http://localhost:8900').then(function(status) {
            console.log(status);
                 if ( status === "success" ) {
              page.injectJs("../node_modules/mocha/mocha.js");
              page.injectJs("../node_modules/chai/chai.js");

              //inject your test reporter
              page.injectJs("testMocha/reporter.js");

              //inject your tests
              tests.forEach(function(test) {
                 page.injectJs(test);
              })

               page.property('evaluate').then(function() {
                  window.mocha.run();
                });
            }else{
              ph.exit();
            }
        });
    });
});

我用

运行文件
node myFile.js

但是当我运行该文件时,控制台中没有显示任何内容,我的测试都没有运行,并且脚本挂起。

如果我没有使用phantomjs-node,我可以运行并显示我的测试,启动文件

phantomjs myFile.js

但是我需要phantomjs-node来做我的测试所需的其他事情。我如何用phantomjs-node进行摩卡?

1 个答案:

答案 0 :(得分:0)

我的问题的解决方案是首先我需要以这种方式开始评估:

page.evaluate(function() {

我以为我必须做page.property('evaluate').then(function() {因为我使用了phantomjs-node但事实并非如此

第二个原因我无法看到我的测试结果来自mocha是因为在我的记者文件中我用callPhantom显示结果:

window.callPhantom({ message: args.join(" ") }); 

但是使用phantomjs-node这似乎不起作用,所以只需做一个简单的console.log

console.log( args.join(" ") );

我使用的记者的例子和一个关于如何一起使用phantomJS和mocha的精彩教程可以在那里找到:

http://doublenegative.com/phantomjs-mocha-and-chai-for-functional-testing/