我有一套当前与浏览器测试运行器一起运行的客户端 Mocha 测试。但我也有一套服务器端 Mocha 测试,使用 Node.js 命令行测试运行器运行。
我知道我可以在像 PhantomJS 这样的 headless 浏览器中从命令行运行客户端测试(例如 like this ),但它们仍然与服务器端测试分开运行。
有什么方法可以作为命令行运行的一部分来运行客户端测试?
例如始终运行两组测试,并有一个组合输出,如“所有 100 个测试都通过”或“2 个测试失败”——跨客户端和服务器端套件。
我想如果这是可能的,就需要某种“代理”层来动态描述
每次浏览器测试的命令行运行程序,并通知它每个结果(当测试在浏览器中运行时,甚至可能还有任何 console.log
输出。
有什么东西可以做到这一点吗?我很难找到任何东西。谢谢!
最佳答案
我使用 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();
});
});
});
});
关于node.js - Mocha 浏览器使用 Node.js 命令行运行程序进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22201885/