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

标签 node.js testing phantomjs mocha.js

我有一套当前与浏览器测试运行器一起运行的客户端 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/

相关文章:

dpi - 使用 render() 控制图像输出的 DPI

javascript - 如何在没有 Node.js/NPM 的情况下将我的 Web 应用程序转换为 Angular 4

node.js - MongoDB 更新到 3.0 后 Heroku 应用程序崩溃

node.js - 将 Angular 6 部署到 heroku 后出现空白页面

python - 如何在运行 Django runserver 时自动运行测试?

java - 我们应该避免使用 Powermock 吗?

json - 已弃用的 jp@gc 的替代品 - JSON 格式后处理器

node.js - 如何在 AWS Lambda 上部署 phantomjs Node 应用程序?

javascript - 如何使用 ExpressJS 检查主机?

jquery - 如何使用 webdriverio、mocha 和 phantomjs 测试将字段设置为空字符串?