Javascript 运行时没有console.log到标准输出;npm测试“;(开玩笑)
据我所知,在运行脚本时,Javascript 运行时没有console.log到标准输出;npm测试“;(开玩笑),javascript,node.js,testing,npm,jestjs,Javascript,Node.js,Testing,Npm,Jestjs,据我所知,在运行脚本时,console.log()可以毫无问题地打印到控制台的标准输出 但是在我的例子中,我将NPM配置为在从shell发出NPM test时运行Jest,并且测试文件中的任何console.log()都不会在屏幕上打印任何内容。 我还尝试使用process.stdout.write(),但在运行npm测试时仍然没有得到自定义输出 我应该如何调试测试脚本中的内容? 我不知道这是来自Node、NPM还是Jest的问题。 有一个类似于我的,但我仍然无法解决和得到输出一个简单的字符串;
console.log()
可以毫无问题地打印到控制台的标准输出
但是在我的例子中,我将NPM配置为在从shell发出NPM test
时运行Jest,并且测试文件中的任何console.log()
都不会在屏幕上打印任何内容。
我还尝试使用process.stdout.write()
,但在运行npm测试时仍然没有得到自定义输出
我应该如何调试测试脚本中的内容?
我不知道这是来自Node、NPM还是Jest的问题。
有一个类似于我的,但我仍然无法解决和得到输出一个简单的字符串;而其余的笑话输出像往常一样被重复
有人经历过类似的问题吗
编辑1:
我尝试运行npm测试--runInBand
,但日志没有出现
注
尝试重复运行命令,如
console.log('foo…');console.log('bar..');console.log('baz..')代码>
我有时可以看到日志,但随后会被以下Jest输出的其余部分覆盖/隐藏。来自链接问题,因为问题多年来一直存在
有一种方法可以解决这个问题。看起来最近一次精炼是在过去几个小时内完成的(请参见Github问题链接)
然而,我找到了一个适用于我最简单情况的解决方案:
- 只要运行启用详细模式,日志就会神奇地出现李>
该不会在任何情况下都修复;可能异步/多线程/etc仍然存在问题(请报告您的经验,以便我可以更新答案);例如,添加进程。在日志之后退出(1)
将再次隐藏它
在进程运行之前尝试按ctrl+c
。exit()
运行(计时正确…)将显示日志实际存在并被覆盖
我将用新闻更新答案,但这可能会帮助其他人从Node/NPM/Jest设置开始 这不干净,但我很幸运,希望它能帮助您,直到发布修复程序:在被覆盖的日志之后记录一些额外的换行代码:
console.log('I want to be seen!');
console.log('\n\n\n\n');
我也想知道这一点,这很烦人,如果对你有用的话,我现在做的事情是在那里我会有一个console.log,而不是我写到一个文件中。@countingstaff似乎很棘手。查看我链接的Jest存储库中的问题,以跟踪正在发生的事情(从2年前开始;在过去的2个小时里,我使用了这个命令,日志被打印出来:npm run test src/rentcafe.com/--runInBand--verbose
如果你读过,你会发现我已经尝试过了这些——在我的答案中链接了一个关于这个问题的Github问题;我想他们解决了这个问题并发布了一个补丁版本。这个答案是什么你的问题?
console.log('I want to be seen!');
console.log('\n\n\n\n');