2012-12-25 9 views
7

Ich möchte eine Warnung in einem JUnit Test anzeigen. Ich möchte nicht, dass der Test aufgrund dieser Warnung fehlschlägt, aber ich würde gerne wissen, dass die Warnung auftritt. Natürlich kann ich System.err.print oder etwas ähnliches verwenden. Jetzt frage ich mich, was die Recht Weise ist es mit Konsole appenderWarnung in JUnit Tests

+0

Es hängt davon ab, wo diese Warnung angezeigt werden soll? Konsole? Test Output-Bericht im Allgemeinen? – fge

Antwort

5

Ich habe auch gedacht, dass dies manchmal nützlich wäre, aber das kann nicht getan werden. JUnit besteht auf einer richtigen und falschen Antwort und hat nur "Erfolg", "Fehler" und "Fehler". Fehler beim Auftreten von Fehlern im Code beim Ausführen des Tests. Ich würde umgestalten und überlegen, ob Sie wirklich eine Warnung benötigen (oder protokollieren wie die vorherige Antwort suggeriert, obwohl ich denke, dass diese Warnung bald verloren gehen würde),

+0

Verwenden Sie möglicherweise TestSuite.warning (String), obwohl der Balken weiterhin rot ist. –

4

Verwendung Logger zu tun für sie

final Logger logger = LoggerFactory.getLogger(LoggingTest.class); 

@Test 
public void test() { 
    logger.warn("message"); 
} 

PS. Beispiel mit slf4j Logger.

2

können Sie log4j Konfiguration spezifisch für Ihre Tests haben.

Schritt 1: Erstellen Sie eine Datei src/test/resources/test-log4j.properties mit der Konfiguration von log4j für Ihre Tests.

Beispiel:

log4j.rootLogger=DEBUG, R 
log4j.appender.R=org.apache.log4j.ConsoleAppender 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{3}:%L - %m%n 

Schritt 2: Bearbeiten Sie Ihre pom.xml wie folgt aus:

<build> 
... 
<plugins> 

    <plugin> 
    <artifactid>maven-surefire-plugin</artifactid> 
    <version>2.3</version> 
    <configuration> 
     <systemproperties> 
     <property> 
      <!-- Specific log4j config for tests --> 
      <name>log4j.configuration</name> 
      <value>test-log4j.properties</value> 
     </property> 
     </systemproperties> 
    </configuration> 
    </plugin> 
    ... 
</plugins> 
</build> 

Jetzt ist Ihre log4j.properties in src/main/webapp/WEB-INF befindet/Klassen/

Hoffe das hilft.