如何在Node.js中处理Mocha测试的结果?

时间:2019-08-13 16:09:37

标签: javascript node.js mocha sinon

我有一个简单的Mocha文件:

const assert = require('assert');

describe('Array', function () {
  describe('#indexOf()', function () {
    it('should return -1 when the value is not present', function () {
      assert.equal([1, 2, 3].indexOf(4), -1);
    });
  });
});

我希望在Node.js中运行上面的测试,并访问测试结果以进行进一步的操作。

我知道可以导入Mocha并运行测试,如下所示:

const Mocha = require('mocha');

const test = new Mocha();
test.addFile('./assert.js');
test.run();

但是,我想一种可能通过assert.equal方法获取then()和相应描述的结果的方法。有任何想法吗? Sinon.JS有帮助吗?

最终目标是使用API​​端点在浏览器中显示这些测试。

1 个答案:

答案 0 :(得分:1)

您可以使用test的实例并为每次测试执行查找事件。

例如:

const Mocha = require('mocha');

const test = new Mocha();
test.addFile('./assert.js');
let runner = test.run();

runner.on('pass', (e) => {
    passed.push({
        title: e.title,
        speed: e.speed,
        duration: e.duration,
        file: e.file
    });
});

runner.on('fail', (e) => {
    failed.push({
        title: e.title,
        err: error,
        file: e.file
    });
});