以编程方式运行mocha时的访问结果

时间:2015-10-28 14:40:40

标签: javascript testing mocha

我正在以编程方式使用mocha,并希望在我的程序中访问结果以供以后计算。

目前,我有:

var mocha = new Mocha({
  reporter: 'json'
});

files.forEach(file => {
  var path = process.cwd() + '/' + file;
  mocha.addFile(path);
});

mocha.run()
  .on('start', function() {
    // do something
  })
  // ...
  .on('end', function() {
    // I want to resolve the promise with the result generated by mocha:
    resolve(result);
  });

但是,我永远无法访问json报告器报告的结果(仅限命令行)。 有没有办法在程序中以json的形式访问结果?例如,通过将结果写入文件并稍后阅读它?

1 个答案:

答案 0 :(得分:2)

json记者将其结果存储在testResults字段中的测试运行器上。因此,您可以将end处理程序修改为:

.on('end', function() {
    resolve(this.testResults);
 });

我已经对它进行了测试,但它确实有效。我通过阅读摩卡的代码来解决这个问题。我还检查了文档,但是我没有看到指向公共API的东西,通过它可以获得这些结果。据我所知,只有json记者这样做。