抑制来自 Supertest 的 REST 日志记录调用

Suppress REST Logging Calls from Supertest

我已经开始使用 MEAN 堆栈,目前正在使用 Super Test 编写 REST 单元测试

我想让我的日志文件更清楚一点,这样我就可以轻松地看到我成功和失败的测试。

我希望抑制实际剩余 API 调用的控制台输出,我认为它来自 SuperTest。

这张图片显示了我要隐藏的日志。

我认为它实际上来自 expressjs/morgan。我通过将 env 设置为 test 并为测试 env 禁用 morgan 来绕过它。

在我的测试文件中:

process.env.NODE_ENV = 'test';

在app.js中:

if(app.get('env') !== 'test') app.use(logger('dev'));

您可以设置 morgan 接受跳过功能。

然后,例如,您可以切换环境变量 on/off - 或者定义您自己的跳过逻辑以暂时关闭日志记录。

app.use(
  logger('dev', {
    skip: function(req, res) {
      return process.env.MUTE_LOGGER === 'on';
    },
  }),
);