javascript - 运行 "npm test"时没有 console.log 到 STDOUT(开 Jest )

标签 javascript node.js testing npm jestjs

据我所知,在运行脚本时,console.log() 应该可以毫无问题地打印到我的控制台的 STDOUT。

但在我的例子中,我将 NPM 配置为在从 shell 发出 npm test 时运行 Jest,并且测试文件中的任何 console.log() 都不会在屏幕上打印任何东西。 我也尝试使用 process.stdout.write() 但在运行 npm test 时我仍然没有得到自定义输出。

我应该如何调试测试脚本中的内容? 我不知道这是来自 Node、NPM 还是 Jest 的问题。 有一个 Jest issue看起来和我的很相似,但我仍然无法解决并输出一个简单的字符串;而其余的 Jest 输出则照常回显。

有人遇到过类似的问题吗?

编辑 1: 我尝试运行 npm test -- --runInBand 但未显示日志。

注意事项

尝试像这样重复运行命令

console.log('foo...');console.log('bar..');console.log('baz..');

有时我可以看到日志,但随后它会被以下 Jest 输出的其余部分覆盖/隐藏。

最佳答案

从链接的问题开始,因为这个问题已经存在多年了......

a pull request in the alpha release这将解决这个问题。看起来最后的精炼是在过去几个小时内进行的(参见 Github 问题链接)。

但是我找到了适用于我最简单情况的解决方案:

  • 只需运行启用详细模式,日志就会神奇地出现!
npm test -- --verbose=true

不会在所有情况下都能解决;也许异步/多线程/等仍然会有问题(请报告您的经验,以便我更新答案);例如,在日志后添加一个 process.exit(1) 将再次隐藏它。

尝试在 process.exit() 运行之前按 ctrl + c(在正确的时间...)将显示日志实际上存在并且正在覆盖。

我会用新闻更新答案,但这可能会帮助其他人开始使用 Node/NPM/Jest 设置!

关于javascript - 运行 "npm test"时没有 console.log 到 STDOUT(开 Jest ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54190596/

相关文章:

node.js - 从 nodejs 加载 DlL 时出现错误 "Dynamic Symbol Retrieval Error: Win32 error 127"

testing - Go 在运行测试时挂起

javascript - Flash 对象未正确嵌入 IE 中

javascript - 我需要一个正则表达式来删除开头的空格,并且它应该允许两个单词之间有空格

node.js - 参数前置条件中的命名路由

node.js - nightwatch.js 中 page_objects 中的多级部分

mysql - 我如何在 Maven 中启动 MySQL 数据库以用于我们的 JUnit 测试?

javascript - WebStorm 内置 Web 服务器为 index.html 中包含的每个 css 和 js 文件获取 404

javascript - 在露天创建扁平文件夹别名

node.js - 连接到本地主机 :3000 server with Node. js