Je suis exécutant des tests de test, et la sortie de journalisation est définie sur Le problème est que la sortie est extrêmement verbeuse et que tout le monde manque à tout le monde. Je voudrais capturer tous les événements de journalisation de Log4J - qui est facile - et ne les imprime que lorsque le test échoue. De plus, je dois prendre en compte En supposant que j'ai déjà une liste de log4j débogage code>, donc en cas d'échec, je peux avoir à inspecter exactement ce qui ne va pas. P>
@ avant / @ après code> méthodes et imprimer une sortie pour eux. P>
Loggockevent code> S, comment puis-je imprimer celles uniquement lorsque le test
Test code> /
après code> /
/
Avant code> Méthodes échoue? P>
4 Réponses :
Implémenter et enregistrer un org .testag.itestlistener et réagissez sur les méthodes de rappel. P>
lien est bouché, robert
Ce site a une explication sur la façon de le faire. . J'ai copié la partie de code ici au cas où le lien est mort.
Logger.getLogger(this.getClass()) log4j.rootLogger=ERROR,TESTAPPENDER log4j.appender.TESTAPPENDER=com.my.fantastic.MockedAppender import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; public class FooTest { private Appender appenderMock; @Before public void setupAppender() { appenderMock = mock(Appender.class); Logger.getRootLogger().addAppender(appenderMock); } @After public void removeAppender() { Logger.getRootLogger().removeAppender(appenderMock); } @Test public void testMethod() { doStuffThatCausesLogging(); verify(appenderMock).doAppend((LoggingEvent) anyObject()); } } ArgumentCaptor arguments = ArgumentCaptor.forClass(LoggingEvent.class); verify(appenderMock).doAppend(arguments.capture());
Merci, c'est en quelque sorte liée, mais pas ce que je cherche.
Ne répond pas à la question.
@ user43685: Vous avez raison, j'ai ajouté un code source pour en faire une réponse moins déchets.
Utilisez reporter.log (STR) pour enregistrer le message sur le rapport.
mettre jmockit dans des dépendances. Avec le test de journalisation informatique, il est très facile.
Mettre en classe de test: P>
testedFunction(a, b, c); new Verifications() {{ logging.error("The message that should be output"); logging.info("Another message"); }};