摩卡:成功测试中隐藏console.log输出

时间:2018-11-01 11:52:19

标签: node.js mocha console.log

我的问题

我正在使用Mocha为Node.js应用程序编写测试套件。我正在测试的功能将其日志直接写入console.log,而没有任何第三方日志记录解决方案。

我不在乎成功测试的日志,仅在失败测试中记录日志,由于我的函数非常冗长,因此测试输出不必要地长。

我尝试了什么

我的问题

如何抑制通过成功的Mocha测试的console.log输出?

2 个答案:

答案 0 :(得分:3)

您可以修改while函数以将其参数记录到变量中:

console.log
const originalLogFunction = console.log;
let output;
beforeEach(function(done) {
  output = '';
  console.log = (msg) => {
    output += msg + '\n';
  };
});

如果要提供多个参数或对象,则可能需要修改虚拟日志功能。这是一个简化的示例。

答案 1 :(得分:2)

这是“摩卡抑制日志”的另一种方式

安装:

npm install --save-dev mocha-suppress-logs

然后您可以将其用于每个描述:

const suppressLogs = require('mocha-suppress-logs');
 
describe('Something', () => {
  suppressLogs();
 
  it('should do something', () => {
    // test code
  });
});

更多信息: https://www.npmjs.com/package/mocha-suppress-logs