我有一套客户端Mocha测试,目前与浏览器测试运行器一起运行。但我也有一套服务器端Mocha测试,它们与Node.js命令行测试运行器一起运行。
我知道我可以在像PhantomJS这样的无头浏览器中从命令行运行客户端测试(例如like this),但它们仍然与服务器端测试分开运行。
有没有办法在命令行运行中运行客户端测试?
E.g。总是运行两组测试,并且在客户端和服务器端套件中都有一个组合输出,例如“所有100次测试通过”或“2次测试失败”。
我想如果这是可能的,那么每个浏览器测试都需要某种“代理”层来动态describe
到命令行运行器,并通知每个结果(甚至任何结果)当测试在浏览器中运行时,console.log
输出也是如此。
是否存在实现此目的的任何事情?我很难找到任何东西。谢谢!
答案 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();
});
});
});
});