【问题标题】:Suppress console log of successful mocha tests禁止成功 mocha 测试的控制台日志
【发布时间】:2015-10-05 14:11:48
【问题描述】:

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

【问题讨论】:

  • 记录器如何知道哪些测试会失败?
  • 当然,logger 不知道。但是应该可以将所有日志堆叠在一个队列中,如果测试成功,则刷新队列,如果没有堆叠日志则发送到控制台。所以问题是,如果有人已经尝试过这样做,还是我应该自己尝试...

标签: node.js mocha.js winston


【解决方案1】:

您可以在运行测试时设置单独的 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) {}
});

【讨论】:

    猜你喜欢
    • 2018-10-28
    • 1970-01-01
    • 2017-03-05
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    相关资源
    最近更新 更多