使用LogCaptor对我的日志进行单元测试,我的问题是,与README中解释的方式相同,我尝试使用consoleCaptor.getStandardOutput()
,因为我正在使用@QuarkusTest
,但它从输出中什么也得不到,即使控制台在输出中显示多个json日志。
第一个
我的记录器是@JBossLog
,我怀疑可能它们不兼容。
<dependency>
<groupId>io.github.hakky54</groupId>
<artifactId>logcaptor</artifactId>
<version>2.7.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.github.hakky54</groupId>
<artifactId>consolecaptor</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
1条答案
按热度按时间h7appiyu1#
我已经在这里回答了你的问题:https://github.com/Hakky54/log-captor/issues/37
但我也会在这里发布解决方案,这样其他有同样问题的人就可以很容易地解决它。
Quarkus正在使用一个不同的类加载器,这就是为什么它不能捕获日志的原因。有一个解决方案,但只有在没有
@QuarkusTest
注解的情况下才能工作。如果你需要那个注解,我建议你使用console-captor。请看这里的工作演示:以下步骤用于设置控制台捕获器!
所以你需要做的是:
1.将logback-classic添加为测试依赖项
1.将logback-test.xml添加为测试资源
1.配置surefire插件以排除其slf 4j日志记录实现
因此,您的pom.xml应该如下所示:
您的logback-test.xml文件应包含以下内容:
这是一个问候语资源示例:
及工作试验班:
你能给予一下并在这里分享你的结果吗?