如何在 Node.js 中操纵 Mocha 测试的结果?

How to manipulate results of Mocha test in Node.js?

我有一个简单的 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 端点在浏览器中显示这些测试。

您可以使用 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
    });
});