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

Ada*_*tan 6 mocha.js node.js console.log

我的问题

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

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

我试过什么

我的问题

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

Mat*_*asG 15

使用Mocha Suppress Logs这非常简单。

只需安装它:

npm install --save-dev mocha-suppress-logs
Run Code Online (Sandbox Code Playgroud)

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

npm install --save-dev mocha-suppress-logs
Run Code Online (Sandbox Code Playgroud)

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

"require": "mocha-suppress-logs"
Run Code Online (Sandbox Code Playgroud)


Tho*_*orf 7

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

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

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