如何在单元测试期间禁用 Morgan (请求日志记录器)?

8

我使用 Morgan(默认的 Express 生成器请求日志记录器),并且我正在尝试在单元测试期间禁用它。

目前我正在使用默认配置,在 app.js 中加载 Morgan。

const logger = require('morgan');
...
const app = express();
...
app.use(logger('dev'));

我尝试将代码移动到bin/www(导入express应用程序并启动服务器),但它不起作用......有什么想法吗?

1个回答

22

您可以像这样使用morganskip选项:

const logger = require('morgan');
const app = express();
app.use(logger('dev', { skip: (req, res) => process.env.NODE_ENV === 'test' }));

当您运行单元测试时,process.env.NODE_ENV将被设置为'test'。请参见环境变量

NODE_ENV - 如果它没有被设置为其他值,则设置为'test'。


运行得非常完美!谢谢! - Dijkie85
另一个选择是在测试环境下不使用记录器。 - TrueWill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接