Spring 启动测试 - 减少控制台输出

Spring Boot Test - Reduce Console Output

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

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

关闭日志记录
logging:
  level:
    root: WARN

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

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

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


编辑: 再举个例子:

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

哎呀!您使用了:

logging:
level:
root: WARN

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

我相信你需要这样表达:

logging.level.root=WARN

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

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