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?
2
A
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! :)
Verwandte Themen
- 1. Alle Ausnahmen in einer pyqt4-App protokollieren
- 2. Ausnahmen protokollieren mit Ausnahmefilter
- 3. NLog konfiguriert, um alle Ausnahmen automatisch zu protokollieren?
- 4. Spring Exception Handler alle Ausnahmen protokollieren, aber ursprüngliche Antwort zurückgeben
- 5. System.Diagnostics.Trace - korrekte Möglichkeit zum Protokollieren von Ausnahmen
- 6. Spring - Ausnahmen protokollieren nicht in einer Datei
- 7. Alle Kakaoereignisse protokollieren?
- 8. Jersey ... wie alle Ausnahmen zu protokollieren, aber immer noch ExceptionMappers aufrufen
- 9. Wie protokollieren Sie Fehler (Ausnahmen) in Ihren ASP.NET-Anwendungen?
- 10. Formulare gewinnen, alle Klicks protokollieren?
- 11. Python/Django: automatisch protokollieren, wenn Ausnahmen auftreten, einschließlich Anfrage Info
- 12. Alle Abfragen in mysql protokollieren
- 13. Spring MVC protokolliert nicht alle Ausnahmen
- 14. Wie alle Ausnahmen auf Klassenebene in CSharp zu fangen?
- 15. warten Task.WhenAll (Aufgaben) Ausnahmebehandlung, protokollieren Sie alle Ausnahmen von den Aufgaben
- 16. NLog konfigurieren, um Ausnahmen in einer XML-Ausgabe zu protokollieren?
- 17. Wie kann ich alle Ausnahmen mailen?
- 18. Was ist der beste Weg, Ausnahmen mit ETW zu protokollieren?
- 19. So protokollieren Ausnahmen von einem bestimmten Paket in Tomcat
- 20. Sind alle .NET-Ausnahmen serialisierbar?
- 21. Wie verfolgen WCF Serialisierungsprobleme/Ausnahmen
- 22. Wie installiere ich Groovy + Eclipse + Junit4?
- 23. Wie kann ich alle Auflösungsanforderungen in den Autofac-Container protokollieren?
- 24. Mangelnde Unterstützung Basisklasse in junit4/Jmock2
- 25. Wie kann ich RESTful Post-Daten protokollieren?
- 26. Wie programmgesteuert eine Testsuite mit JUnit4 ausführen?
- 27. Haben alle PHP-Ausnahmen die Eigenschaften "trace", "message" und "code"?
- 28. fangen Sie alle nicht behandelten Ausnahmen in ASP.NET Web Api
- 29. fangen alle Ausnahmen in einem Schienen-Controller
- 30. fangen alle Ausnahmen in Scala 2.8 RC1
Zustimmen. JUnit bietet kein Log-Modul, Sie müssen selbst Log-Code schreiben. –