【问题标题】:Spring Boot Test - Reduce Console OutputSpring Boot 测试 - 减少控制台输出
【发布时间】:2019-07-23 08:45:15
【问题描述】:

我们实际使用的是 Spring Boot 1.5.8,正如我所见,我们还没有指定特定的日志框架。作为初级开发人员,我负责 JUnit 测试。我们有大约 17'000 个单元测试。当我运行大量测试时,IntelliJ 在处理控制台输出时不能或存在性能问题。而且我给了 IntelliJ 很大的权力......

现在我将application.yml中的Log.LEVEL调整为WARN,效果很好。但后来我尝试摆脱控制台中的 HTTP 响应和请求输出。但即使我关闭了日志记录

logging:
  level:
    root: WARN

application.yml 中,它仍然显示 HTTP 请求和响应,如下所示:

这会根据请求用成百上千行在某些情况下不必要的代码填充控制台!

我正在寻找关闭此功能的选项...请帮助我。我搜索了一段时间,但找不到答案。 可能我在照顾 Spring Boot Logging 方面走错了路。谢谢=)


编辑: 再举一个例子:

我收到以下控制台输出错误。我只需要开始的第一行和红色(+一些额外的)行。正如您在滚动条上看到的,这只是完整输出的一小部分!确实 7033 行 (!) 充满了 HTTP 请求和响应,就像第一张图片中的那样。

【问题讨论】:

    标签: spring spring-boot spring-logback


    【解决方案1】:

    偶然我找到了解决方案。我必须在@AutoConfigureMockMvc 注释中设置print = MockMvcPrint.NONE。这似乎收集了每个失败测试的 HTTP 请求和响应,并在测试失败时打印所有内容!这在一些失败后导致了巨大的输出!

    【讨论】:

      【解决方案2】:

      哎呀!你用过:

      logging:
      level:
      root: WARN
      

      这是yaml格式! (如果你重命名你的文件 application.yml 就可以了)

      我相信你需要这样表达:

      logging.level.root=WARN
      

      这是在 application.properties 文件中表达它的正确方式。

      【讨论】:

      • 我以为你有两种配置 Spring 的选项? yml & 属性?对我来说 .yml 解决方案有效,控制台不显示任何 INFO 或 DEBUG 日志。
      • 哦,对不起!我写了属性,但是是 yml!对不起!
      • 当然可以,但看起来您在名为 application.properties 的文件中使用了 yaml 格式 :)。
      • 啊不 =) 抱歉,这是帖子中的错误。该文件名为 application.yml ,格式与我描述的一样。不过谢谢你的提示。
      猜你喜欢
      • 1970-01-01
      • 2016-05-11
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 2017-10-03
      • 1970-01-01
      • 2020-08-03
      相关资源
      最近更新 更多