【问题标题】: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"