Mocha:隐藏成功测试的 console.log 输出

Mocha: Hide console.log output from successful tests

我的问题

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

我不关心成功测试的日志,只关心失败测试的日志,而且由于我的函数非常冗长,测试输出不必要地长。

我尝试了什么

我的问题

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

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

const originalLogFunction = console.log;
let output;
beforeEach(function(done) {
  output = '';
  console.log = (msg) => {
    output += msg + '\n';
  };
});
afterEach(function() {
  console.log = originalLogFunction; // undo dummy log function
  if (this.currentTest.state === 'failed') {
    console.log(output);
  }
});

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

使用 Mocha Suppress Logs 非常简单。

只需安装即可:

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

并将其添加到您的 Mocha 命令中:

mocha --require mocha-suppress-logs

或者将其放入您的 Mocha 配置中以使其成为默认设置:

"require": "mocha-suppress-logs"