JUnit mit Slf4j-logging mit Logback: Protokollierung nur in der ersten test-Methode

Habe ich ein seltsames Verhalten mit meinem JUnit-Test, der verwendet mit SLF4j Logback für die Protokollierung. Protokollierung der perfekt funktioniert in den ersten test-annotierten Methode, scheitert aber in den folgenden Methoden.
BTW: Tests, die nicht-test-kommentiert, wie erwartet. Nur test-Methoden Versagen.

Dies ist meine Test-Klasse:

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
    }
}

Und hier ist meine Konfiguration (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>

Dies ist mein classpath: slf4j-api-1.7.2.jar, logback-classic-1.0.7.jar, logback-core-1.0.7.jar

Was ich bereits versucht:

  1. Update auf eine neuere SLF4j-version (FAIL)
  2. Versucht, java.util.Logger: funktioniert, aber ich würde viel Zeit in Anspruch zu implementieren Dinge
  3. Versucht mit SLF4j log4j (FAIL)

Irgendwelche Ideen?

  • Welche version von JUnit? Auch bieten die volle Quelle der MyTest - wie z.B. der import für @Test fehlt - es könnte auch etwas anderes sein, dass ist das verursachen problem. Versucht, in sauber maven-Projekt und funktioniert wie erwartet/
  • Ich bin mit JUnit 4.11. Der import import org.junit.Test. Aber ich denke, du hast Recht, das problem wird wohl woanders liegen. Wenn ich entfernen Sie die @Test-Annotation, der logger funktioniert immer. So wie es aussieht JUnit könnte, reset der logger.
InformationsquelleAutor Bernie | 2014-01-28
Schreibe einen Kommentar