从正在测试的代码中抑制控制台日志

Suppress console logs from code being tested

我正在对包含 console.log() 调用的函数进行单元测试。

如何防止该调用的输出显示在我的测试运行程序(在本例中为 Karma)的输出控制台中。
我正在使用 Jasmine。

我正在寻找一种比覆盖浏览器的 console 方法更优雅的方法,最好是配置。

在您的 karma.conf.js config set function 中设置 client.captureConsole = false

module.exports = function (config) {
    config.set({
        client: {
            captureConsole: false
        }
    });
};

原版feature request.

的问题在于它还会抑制 Karma 日志。

如果您只想抑制被调用方法的日志记录,请在 karma.conf.js 中将 browserConsoleLogOptions.level 设置为适当的级别。将 browserConsoleLogOptions.level 设置为 "warn" 将抑制所有 logdebug 日志。

复制粘贴代码段:

// file: karma.conf.js

module.exports = function (config) {
    config.set({
        // other options...
        browserConsoleLogOptions: {level: "warn"}
    }
}

参考 karma configuration file documentation