如何测试Spring Boot应用程序的日志?

迪米特罗·乔索夫斯基(Dmytro Chasovskyi)

我有一个混合了Spring Boot,Jersey和Camel应用程序的应用程序。它作为Spring Boot应用程序启动。我正在编写集成测试,我需要在日志中声明内容吗?

例如,我需要断言骆驼路由从源A读取了一条消息。如何在日志中做出可靠的断言?是否有任何行业标准?

注意:我尝试找到任何解决方案,但此刻,我既不知道如何解决它,也无法找到现成的解决方案。

更新1:我低估了细节,但这似乎很重要。我用Kotlin,不是Java我尝试应用答案,但并非一对一可以转移到Kotlin

更新2:

这是从Java的转换KotlinListAppender没有足够的信息来解析中的类型Kotlin

class LoggerExtension : BeforeEachCallback, AfterEachCallback {
    private val listAppender: ListAppender<ILoggingEvent> = ListAppender<ILoggingEvent>()
    private val logger: Logger = LoggerFactory.getLogger(ROOT_LOGGER_NAME) as Logger

    override fun afterEach(extensionContext: ExtensionContext) {
        listAppender.stop()
        listAppender.list.clear()
        logger.detachAppender(listAppender)
    }

    override fun beforeEach(extensionContext: ExtensionContext) {
        logger.addAppender(listAppender)
        listAppender.start()
    }

    val messages: List<String>
        get() = listAppender.list.stream().map { e -> e.getMessage() }.collect(Collectors.toList())
    val formattedMessages: List<String>
        get() = listAppender.list.stream().map { e -> e.getFormattedMessage() }.collect(Collectors.toList())
}

Kotlin:没有足够的信息来推断类型变量A

这不是错误,但是我有一种感觉,它将在运行时失败:

私有val记录器:Logger = LoggerFactory.getLogger(ROOT_LOGGER_NAME)作为Logger

麦琪(Maciej Walkowiak)

春天开机自带OutputCapture规则的JUnit 4和OutputCaptureExtension选择JUnit 5,可以让你在断言发送到标准输出的文本。

public class MyTest {

     @Rule
     public OutputCaptureRule output = new OutputCaptureRule();

     @Test
     public void test() {
         // test code
         assertThat(output).contains("ok");
     }

 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何测试Spring Boot应用程序的日志?

来自分类Dev

Spring Boot应用程序的默认日志文件

来自分类Dev

在 Spring Boot Cloud Foundry 应用程序中启用日志

来自分类Dev

在 spring-boot 应用程序中过滤日志

来自分类Dev

Spring Boot 应用程序中的日志记录模式

来自分类常见问题

如何测试Spring-boot应用程序的主类

来自分类Dev

Spring Boot 应用程序的测试如何工作

来自分类Dev

黄瓜测试Spring Boot应用程序

来自分类Dev

如何使日志记录组件在整个Spring Boot应用程序中可见

来自分类Dev

Spring Boot应用程序-如何以Json格式打印日志

来自分类Dev

如何在 Spring Boot 应用程序中将日志配置为仅 JSON 格式?

来自分类Dev

在Spring Boot应用程序中何时何地应用日志记录

来自分类Dev

如何扩展Spring Boot应用程序?

来自分类Dev

从Spring Boot应用程序在AWS S3中存储日志文件

来自分类Dev

在 Spring Boot 应用程序中动态更改日志记录级别

来自分类Dev

Openshift : Spring boot : log4j 设置——配置和查找应用程序日志文件

来自分类Dev

如何从测试应用程序上下文中排除 Spring Boot 应用程序 bean?

来自分类Dev

如何在 Spring Boot 中使用 logback 从所有应用程序日志中删除新行

来自分类Dev

Spring Boot REST应用程序测试方法

来自分类Dev

单元测试Spring Boot应用程序端点

来自分类Dev

Spring Boot中多战应用程序的集成测试

来自分类Dev

单元测试Spring Boot应用程序服务层

来自分类Dev

未运行 Spring Boot 应用程序的测试

来自分类Dev

测试 Spring Boot Camel 应用程序时出现 NullPointerException

来自分类Dev

Cucumber 测试不启动 Spring Boot 应用程序

来自分类Dev

测试Spring Boot Batch应用程序时如何配置EntityManagerFactoryBuilder bean?

来自分类Dev

如何在不继承“ spring-boot-starter-parent”模块的情况下测试Spring-Boot应用程序?

来自分类Dev

如何在不继承“ spring-boot-starter-parent”模块的情况下测试Spring-Boot应用程序?

来自分类Dev

如何在Spring MVC应用程序中测试Aspect

Related 相关文章

  1. 1

    如何测试Spring Boot应用程序的日志?

  2. 2

    Spring Boot应用程序的默认日志文件

  3. 3

    在 Spring Boot Cloud Foundry 应用程序中启用日志

  4. 4

    在 spring-boot 应用程序中过滤日志

  5. 5

    Spring Boot 应用程序中的日志记录模式

  6. 6

    如何测试Spring-boot应用程序的主类

  7. 7

    Spring Boot 应用程序的测试如何工作

  8. 8

    黄瓜测试Spring Boot应用程序

  9. 9

    如何使日志记录组件在整个Spring Boot应用程序中可见

  10. 10

    Spring Boot应用程序-如何以Json格式打印日志

  11. 11

    如何在 Spring Boot 应用程序中将日志配置为仅 JSON 格式?

  12. 12

    在Spring Boot应用程序中何时何地应用日志记录

  13. 13

    如何扩展Spring Boot应用程序?

  14. 14

    从Spring Boot应用程序在AWS S3中存储日志文件

  15. 15

    在 Spring Boot 应用程序中动态更改日志记录级别

  16. 16

    Openshift : Spring boot : log4j 设置——配置和查找应用程序日志文件

  17. 17

    如何从测试应用程序上下文中排除 Spring Boot 应用程序 bean?

  18. 18

    如何在 Spring Boot 中使用 logback 从所有应用程序日志中删除新行

  19. 19

    Spring Boot REST应用程序测试方法

  20. 20

    单元测试Spring Boot应用程序端点

  21. 21

    Spring Boot中多战应用程序的集成测试

  22. 22

    单元测试Spring Boot应用程序服务层

  23. 23

    未运行 Spring Boot 应用程序的测试

  24. 24

    测试 Spring Boot Camel 应用程序时出现 NullPointerException

  25. 25

    Cucumber 测试不启动 Spring Boot 应用程序

  26. 26

    测试Spring Boot Batch应用程序时如何配置EntityManagerFactoryBuilder bean?

  27. 27

    如何在不继承“ spring-boot-starter-parent”模块的情况下测试Spring-Boot应用程序?

  28. 28

    如何在不继承“ spring-boot-starter-parent”模块的情况下测试Spring-Boot应用程序?

  29. 29

    如何在Spring MVC应用程序中测试Aspect

热门标签

归档