console.log语句在Jest中不输出任何内容。昨天还挺管用的,今天突然就不管用了。我没有对我的配置做任何更改,也没有安装任何更新。

我没有使用——forceExit选项。仍然看到这个问题。


当前回答

除了前面提到的——verbose选项会导致这个错误外,注意——watch也可能导致这个错误。

其他回答

Jest默认情况下抑制控制台日志消息。为了显示控制台日志消息,在命令行中将silent选项设置为false

在命令行设置——silent=false:

NPM运行测试-- --silent=false

这是一个相当古老的问题,至今仍没有公认的答案。然而,没有一个建议的解决方案对我有效(设置像-静音-verbose等)。主要问题是Jest更改了全局控制台对象。因此,最简单的解决方案是不使用全局控制台对象。

相反,从控制台模块导入专用的日志函数并使用它们:

import { error } from "console";

error("This is an error");

就这么简单。

在MacOS的笑话版本26.6.3中,我必须附加——silent="false"

尝试使用console.debug()代替。

在测试函数中运行console.debug('Message here', yourValueHere),它应该在运行测试脚本时显示在控制台输出中。您可以使用Ctrl+F验证它是否工作,并在标准输出中找到Message。

这是在控制台中显示输出的技巧,虽然这不是一个关于如何使用console.log的答案,我理解。

我运行@test -library/jest-dom和jest-junit 12.0.0作为开发依赖。 joke -junit的最小配置为

  "jest-junit": {
    "usePathForSuiteName": "true"
  },

在package.json。这主要用于配置覆盖率报告。 Jest是这样配置的:

  "jest": {
    "testMatch": [
      "**/__tests__/**/*.[jt]s?(x)",
      "**/?(*.)+(spec|test).[jt]s?(x)",
      "!**/utilities.ts",
    ],

根据v27文档,沉默是你想要的。verbose false(默认值)阻止Jest输出层次结构中每个测试的结果,而silent true(默认值)将:

防止测试通过控制台打印消息。

使用npx jest——silent false如果你想在CLI中使用该选项运行jest。刚才用console.log进行了测试,结果与预期一致。