Mocha:隐藏成功测试的 console.log 输出
Posted
技术标签:
【中文标题】Mocha:隐藏成功测试的 console.log 输出【英文标题】:Mocha: Hide console.log output from successful tests 【发布时间】:2019-04-05 15:31:24 【问题描述】:我的问题
我正在使用Mocha 为 Node.js 应用程序编写一个测试套件。我正在测试的函数将其日志直接写入console.log
,无需任何第三方日志记录解决方案。
我不关心成功测试的日志,只关心失败测试的日志,而且由于我的函数非常冗长,因此测试输出过长。
我尝试了什么
SFTW。找到这个 (Suppress console log of successful mocha tests),但它指的是 Winston 日志。我的问题
如何抑制 console.log
输出通过/成功的 Mocha 测试?
【问题讨论】:
【参考方案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"
【讨论】:
以上是关于Mocha:隐藏成功测试的 console.log 输出的主要内容,如果未能解决你的问题,请参考以下文章
nodejs+mocha+supertest+chai进行测试(only demo)