抑制成功的 mocha 测试的控制台日志

Suppress console log of successful mocha tests

当 运行 mocha 测试套件时,我的控制台输出被应用程序日志污染。有没有一种简单的方法可以从成功的测试中抑制这些日志?我能够抑制测试环境的所有日志,但我想查看失败测试的日志。我正在使用 Winston 作为日志库。

您可以在 运行 测试时设置单独的 Winston 传输,将日志写入日志文件,并在测试失败时显示该文件的内容:

afterEach(function() {
  if (this.currentTest.state !== 'failed') return;
  console.log( fs.readFileSync('/your/logfile').toString() );
});

在每次测试之前,您需要删除文件以重新开始:

beforeEach(function(done) {
  try { fs.unlinkSync('/your/logfile'); } catch(e) {}
});