在执行节点模块的单元测试时是否可以有选择地禁用 Winston 日志记录?
理想情况下,我希望在应用程序运行时进行日志记录以提供信息和调试目的,但在运行测试时不要使演示单元测试结果混乱。
我对 winston 的使用是在我的模块内部的,如下所示:
// MyModule.js
var logger = require('winston');
module.exports = function() {
// does some stuff
// and logs some stuff like so:
logger.log('an informational message');
}
// MyModuleTest.js
describe('MyModule', fucntion() {
it('should do some stuff', function() {
var myModuleUnderTest = require('MyModule');
// some tests
}
}
温斯顿运输有一个silent
您可以设置的属性,这可能比删除整个传输要好一些。
我为传输添加了一个名称,这样会更容易一些:
var logger = new winston.Logger();
logger.add(winston.transports.Console, {
name: 'console.info',
colorize: true,
showLevel: true,
formatter: consoleFormatter,
})
然后在测试或设置中我可以有选择地打开和关闭日志记录:
logger.transports['console.info'].silent = true // turns off
logger.transports['console.info'].silent = false // logging back on
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)