使用Node.js命令行运行器进行Mocha浏览器测试?

时间:2014-03-05 15:22:37

标签: node.js testing phantomjs mocha

我有一套客户端Mocha测试,目前与浏览器测试运行器一起运行。但我也有一套服务器端Mocha测试,它们与Node.js命令行测试运行器一起运行。

我知道我可以在像PhantomJS这样的无头浏览器中从命令行运行客户端测试(例如like this),但它们仍然与服务器端测试分开运行。

有没有办法在命令行运行中运行客户端测试

E.g。总是运行两组测试,并且在客户端和服务器端套件中都有一个组合输出,例如“所有100次测试通过”或“2次测试失败”。

我想如果这是可能的,那么每个浏览器测试都需要某种“代理”层来动态describe到命令行运行器,并通知每个结果(甚至任何结果)当测试在浏览器中运行时,console.log输出也是如此。

是否存在实现此目的的任何事情?我很难找到任何东西。谢谢!

1 个答案:

答案 0 :(得分:1)

我使用Zombie。对于Phantom来说,确实有办法做到这一点。只需在与服务器端测试相同的目录下编写客户端测试,他们就会被Mocha选中并与其他测试一起执行。

我不确定您是否需要一些示例测试代码,但这里有一些以防万一:

var app = require('../server').app; // Spin up your server for testing
var Browser = require('zombie');
var should = require('should');

describe('Some test suite', function () {
    it('should do what you expect', function (done) {
        var browser = new Browser();
        browser.visit('http://localhost:3000', function (err) {
            // Let's say this is a log in page
            should.not.exist(err);
            browser
                .fill('#username', 'TestUser')
                .fill('#password', 'TestPassword')
                .pressButton('#login', function (err) {
                    should.not.exist(err);
                    // etc...
                    return done();
                });
        });
    });
});