如何禁用Jest 'console.log'标记

fafcakar  于 2022-12-08  发布在  Jest
关注(0)|答案(4)|浏览(179)

我在内部通过console.log()(实际上是loglevel)完成了一些NodeJS日志记录,正如我所看到的,Jest出于某种原因将console.log输出标记为console.log ../path/to/string/with/console.log/call:line#

我在文档中没有找到任何相关选项。我如何禁用它?

svmlkihl

svmlkihl1#

重要提示

我好奇地看了一眼第一个答案中提到的答案,上面说:
看看source code的笑话,似乎没有一个整洁的方法来关闭这些消息。
我注意到答案上标记了更新解决了问题

解决方案

只需将以下代码添加到测试中:

beforeEach(() => {
    global.console = require('console');
  });
slhcrj9b

slhcrj9b2#

创建一个全局配置测试文件,例如src/test/config.js,将此行添加到该文件:

jest.spyOn(console, "log").mockImplementation();

将以下内容添加到jest配置中:

setupFilesAfterEnv: ['./src/test/config.js']

您还可以使用文件进行全局清理,在每次清理之前/之后进行清理,等等

8ljdwjyq

8ljdwjyq3#

谢谢@Anders Carstensen,我看了你提到的答案,上面写着:
看看source code的笑话,似乎没有一个整洁的方法来关闭这些消息。
这不是我写自己的控制台的选择,所以我现在还是用Mocha/Sinon吧。

tgabmvqs

tgabmvqs4#

tslalamam answer代码对我不起作用,但这一个起作用

1:使用此代码创建文件(例如config.js)

import console from "console"
global.console = console

2:将此行添加到jest.config.js中

setupFilesAfterEnv: ["./config.js"]

之前:

之后:

祝你愉快!

相关问题