【问题标题】:Mocha browser tests with Node.js command-line runner?Mocha 浏览器使用 Node.js 命令行运行程序进行测试?
【发布时间】:2014-04-07 18:07:01
【问题描述】:

我有一套客户端 Mocha 测试,目前使用浏览器测试运行程序运行。但我也有一套使用 Node.js 命令行测试运行程序运行的服务器端 Mocha 测试。

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

有没有办法将客户端测试作为命令行运行的一部分运行?

例如始终运行两组测试,并有一个组合输出,例如“所有 100 个测试都通过”或“2 个测试失败”——跨客户端和服务器端套件。

我想如果这是可能的,则需要某种“代理”层来动态地 describe 到命令行运行器每个浏览器测试,并通知它每个结果(甚至可能是任何 @987654323 @ 输出),因为测试在浏览器中运行。

有没有什么东西可以做到这一点?我很难找到任何东西。谢谢!

【问题讨论】:

    标签: node.js testing phantomjs mocha.js


    【解决方案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();
                    });
            });
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2018-03-29
      • 2016-06-03
      相关资源
      最近更新 更多