【问题标题】:How to disable Jest `console.log` tags如何禁用 Jest `console.log` 标签
【发布时间】:2018-11-29 05:32:52
【问题描述】:

我在内部通过console.log() 完成了一些NodeJS 日志记录(实际上是loglevel),正如我所见,Jest 以console.log ../path/to/string/with/console.log/call:line# 标记console.log 输出,无论出于何种原因:

我在文档中没有找到任何相关选项。如何禁用它?

【问题讨论】:

  • 请检查this answer是否对您有帮助。
  • 这能回答你的问题吗? Remove logging the origin line in Jest
  • @jonrsharpe 您发布的是问题链接,而不是答案。另外,我已经提到了您在我自己对我的问题的回答中链接的问题的答案之一:stackoverflow.com/a/51588150/216042
  • 这正是不是应该发生的事情,这个问题应该作为另一个问题的副本关闭,所以 下一个 人有同样的问题被发送到那里的答案(它确实有,你只是不想使用它们)。您对那个欺骗提议的建议是,要那个问题的人发送here,这绝对没有意义。我认为您不了解重复项的工作原理。
  • @jonrsharpe “你真的认为下面的答案(基本上是“不要使用 Jest”)更有用”——绝对!在那一刻,它为我节省了大量宝贵的时间。对于使用 React 进行开发 - 您可以毫无疑问地使用 Jest。开发服务器端 Node.js - 值得商榷,除非你可以接受一些烦人的事情。所以是的,我声称我的答案仍然是一个更好的答案。

标签: node.js jestjs


【解决方案1】:

创建一个全局配置测试文件,例如src/test/config.js,将此行添加到该文件:

jest.spyOn(console, "log").mockImplementation();

将此添加到 jest 配置中:

setupFilesAfterEnv: ['./src/test/config.js']

您还可以使用该文件进行全局清理,在每个之前/之后等

【讨论】:

    【解决方案2】:

    重要提示

    我好奇地看了一下第一个答案中提到的答案,它说:

    查看 Jest 的 source code,似乎没有 关闭这些消息的好方法。

    我注意到答案上标记了更新,并且解决了问题

    解决方案

    只需将此代码添加到您的测试中:

    beforeEach(() => {
        global.console = require('console');
      });
    

    【讨论】:

      【解决方案3】:

      谢谢@Anders Carstensen,我看过你提到的the answer,上面写着:

      查看 Jest 的 source code,似乎没有一种巧妙的方法可以关闭这些消息。

      我无法编写自己的控制台,所以我现在只坚持使用 Mocha/Sinon。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-01
        • 1970-01-01
        • 2013-07-07
        • 2021-08-02
        • 2014-01-09
        • 2019-03-31
        相关资源
        最近更新 更多