代码之家  ›  专栏  ›  技术社区  ›  Adam Matan

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

  •  3
  • Adam Matan  · 技术社区  · 7 年前

    我正在为Node.js应用程序编写一个测试套件,使用 Mocha . 我正在测试的函数将它们的日志写入 console.log

    我不关心成功测试的日志,只关心失败测试的日志,因为我的函数非常冗长,所以测试输出不必要的长。

    我试过什么

    我的问题

    我怎样才能抑制 控制台.log

    1 回复  |  直到 7 年前
        1
  •  6
  •   Thomas Dondorf    7 年前

    您可以修改 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
  •  3
  •   MatiasG    5 年前

    这是另一种“摩卡压制原木”的方法

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

    然后你可以这样用它来描述:

    const suppressLogs = require('mocha-suppress-logs');
     
    describe('Something', () => {
      suppressLogs();
     
      it('should do something', () => {
        // test code
      });
    });
    

    https://www.npmjs.com/package/mocha-suppress-logs