2011-01-16 7 views
2

Hey, ich benutze SpringJUnit4ClassRunner, und große Testsammlungen mit der Eclipse UI laufen. Wenn Tests fehlschlagen, kann ich die Ausnahmen und den vollständigen Stack-Trace in der Junit-Ansicht sehen. Ich möchte, dass sie auch eingeloggt sind.
(Verwenden von log4j von apache.commons.logging umschlossen)Wie macht JUnit4 alle untrünstigen Ausnahmen protokollieren?

Antwort

2

SpringJUnit4ClassRunner Extend:

public class MySpringJUnit4ClassRunner extends SpringJUnit4ClassRunner{ 
    @Override 
    public void run(RunNotifier notifier) { 
    EachTestNotifier testNotifier= new EachTestNotifier(notifier, 
      getDescription()); 
    try { 
     Statement statement= classBlock(notifier); 
     statement.evaluate(); 
    } catch (AssumptionViolatedException e) { 
     testNotifier.fireTestIgnored(); 
     Logger.error(e); 
    } catch (StoppedByUserException e) { 
     Logger.error(e); 
     throw e; 
    } catch (Throwable e) { 
     testNotifier.addFailure(e); 
     Logger.error(e); 
    } 
    } 
//... 
} 

Dann MySpringJUnit4ClassRunner als Läufer verwenden.

0

Wenn Sie Maven für Build verwenden, kommt es mit einem sicheren Feuer-Plugin verpackt, die Details Bericht über die Testfälle bietet. In Eclipse können Sie die Anwendungskonsole protokollieren lassen. Ich glaube, es ist in Runconfig der Anwendung.Obwohl ich nicht die genauen Details kenne.

0

wenn Sie log4j zu Ihrem Projekt hinzufügen, können Sie die Ausnahmen mit log:

init-Logger in Ihrer Testklasse:

private static final Logger logger = Logger.getLogger(YourClassNameclass); 

hier der Code die Nachricht zu protokollieren:

try{ 
your code here... 
} catch (SomeException e){ 
logger.error("Description of your error", e); 
} 

und hier das Muster in Ihrer log4j.properties, um die Nachrichten in einer Datei zu protokollieren:

log4j.rootLogger=ALL,A1 

log4j.appender.A1=org.apache.log4j.FileAppender 
log4j.appender.A1.File=Testlogfile.log 
log4j.appender.A1.append=false 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=\ 
%-4r [%t] %-5p %c %x -%m%n 

viel Glück! :)

+0

Zustimmen. JUnit bietet kein Log-Modul, Sie müssen selbst Log-Code schreiben. –

Verwandte Themen