【问题标题】:No console.log to STDOUT when running "npm test" (jest)运行“npm test”时没有 console.log 到 STDOUT(开玩笑)
【发布时间】:2019-06-08 23:27:27
【问题描述】:

据我所知,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 输出的其余部分覆盖/隐藏。

【问题讨论】:

  • 我也想知道这个,很烦人,如果对你有用的话,我现在要做的就是在哪里有一个console.log,而是写到一个文件中。跨度>
  • @Countingstuff 似乎很棘手。查看我链接的 Jest 存储库中的问题,以跟踪正在发生的事情(自 2 年以来;在过去 2 小时内 ????)。试试--verbose 命令选项,它应该有帮助!! (请让我们知道它是否有效!)我也考虑过写入文件....但后来我告诉自己我宁愿把精力花在试图不屈服于它上????
  • 我使用这个命令并且正在打印日志:npm run test src/rentcafe.com/ -- --runInBand --verbose
  • 如果您阅读,您会看到我已经尝试过这些 - 有一个关于该问题的 Github 问题,链接在我的答案中;我想他们解决了这个问题并发布了一个补丁版本。

标签: javascript node.js testing npm jestjs


【解决方案1】:

来自链接的问题,因为问题已经持续多年......

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

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

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

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

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

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

【讨论】:

    【解决方案2】:

    这不是很干净,但我很幸运,希望它会在修复发布之前对您有所帮助:在被覆盖的日志之后记录一些额外的 newlines:

    console.log('I want to be seen!');
    console.log('\n\n\n\n');
    

    【讨论】:

      【解决方案3】:

      我遇到了这个问题,事实证明,在我的情况下,问题是在写入控制台后立即调用process.exit(1)。在 Jest 测试期间执行此操作时,输出似乎丢失了。

      我选择的(不是完全令人满意的)解决方法是:

      console.warn('stuff I want to write to the console');
      
      if (process.env.NODE_ENV === 'test') {
        setTimeout(() => process.exit(1), 1000);
      } else {
        process.exit(1);
      }
      

      为此,需要在您的 Jest 设置脚本或其他地方将 NODE_ENV 环境变量设置为 test

      【讨论】:

        猜你喜欢
        • 2018-08-12
        • 2017-11-28
        • 1970-01-01
        • 2021-04-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-19
        • 1970-01-01
        相关资源
        最近更新 更多