我的JUnit-Test有一些奇怪的行为,它使用SLF4j和Logback进行日志记录。日志记录在第一个测试注释方法中完美运行,但在以下方法中失败。 顺便说一句:没有经过测试注释的测试按预期工作。只有测试方法失败。
这是我的测试类:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyTest {
private static final Logger logger = LoggerFactory.getLogger(MyTest.class);
@Test
public void testLoggingWorksInFirstTestMethod() throws Exception {
logger.info("testLoggingIsVisible"); // works always
}
@Test
public void testLoggingDoesntWorkAfterFirstTestMethod() throws Exception {
logger.info("invisible"); // works never
}
}
这是我的配置(logback.xml):
<configuration scan="true" scanPeriod="30 seconds" debug="false">
<contextName>tradefnd</contextName>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
<!-- %d{HH:mm:ss.SSS} %-5level %logger{36} %method %line - %msg%n -->
%d{HH:mm:ss.SSS} %msg%n
</pattern>
</encoder>
</appender>
<logger name="com.db.tradefinder.selenium" level="info">
<appender-ref ref="STDOUT" />
</logger>
</configuration>
这是我的类路径:slf4j-api-1.7.2.jar,logback-classic-1.0.7.jar,logback-core-1.0.7.jar
我已经尝试过:
有什么想法吗?
答案 0 :(得分:0)
代码是正确的,这应该有效。清除工作目录并再次启动。这可能是IDE开发过程中的一个小问题。
答案 1 :(得分:0)
感谢您的回答。这是我从某人手中接过的代码,所以我在一个非常隐藏的方法中,在一个继承的类中监视一个LoggerFactory.stop()(出于某种原因)。