【问题标题】:Mocha: Hide console.log output from successful testsMocha:隐藏成功测试的 console.log 输出
【发布时间】:2019-04-05 15:31:24
【问题描述】:

我的问题

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

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

我尝试了什么

我的问题

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

【问题讨论】:

    标签: node.js mocha.js console.log


    【解决方案1】:

    您可以修改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);
      }
    });
    

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

    【讨论】:

      【解决方案2】:

      Mocha Suppress Logs 非常简单。

      只需安装它:

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

      并告诉 Mocha 使用:

      • mocha --require mocha-suppress-logs
        

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

              "require": "mocha-suppress-logs"
        

      【讨论】:

        猜你喜欢
        • 2019-03-14
        • 1970-01-01
        • 2019-05-26
        • 1970-01-01
        • 2012-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多