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

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


当前回答

尝试了关于jest配置设置的建议,但无济于事。相反,在我的案例中,问题似乎与不等待异步代码有关:

test("test", async () => {
  console.log("Does output")

  new Promise(resolve => {
    // some expectation depending on async code
    setTimeout(() => resolve(console.log("Does not output")) , 1)
  })
})

相反,等待promise会输出async日志:

test("test", async () => {
  console.log("Does output")

  await new Promise(resolve => {
    // some expectation depending on async code
    setTimeout(() => resolve(console.log("Does output")) , 1)
  })
})

可能相关背景: https://github.com/facebook/jest/issues/2441

其他回答

根据https://github.com/facebook/jest/issues/2441上的评论,

尝试在package.json的jest选项中设置verbose: false(或删除它)。

将我的文件从index.spec.js重命名为index.test.js。

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

这对我来说很管用:开玩笑——废话连篇

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