Package org.xwiki.test.junit5
Class LogCaptureExtension
- java.lang.Object
-
- org.xwiki.test.junit5.LogCaptureExtension
-
- All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterAllCallback
,org.junit.jupiter.api.extension.AfterEachCallback
,org.junit.jupiter.api.extension.BeforeAllCallback
,org.junit.jupiter.api.extension.BeforeEachCallback
,org.junit.jupiter.api.extension.Extension
public class LogCaptureExtension extends Object implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterEachCallback
Captures any logging done by code being tested in order for the logging to not leak in the console and to be able to assert the content of the logging statements.Usage:
- Must be used with
@RegisterExtension
and using a non private variable
@RegisterExtension LogCaptureExtension logCapture = new LogCaptureExtension(LogLevel.INFO);
- Since:
- 10.4RC1
- Version:
- $Id: b5306aed54dfe57e0e73ea4a35769363de7bb40d $
-
-
Constructor Summary
Constructors Constructor Description LogCaptureExtension()
Captures all logs from severityLogLevel.INFO
and higher (WARN, ERROR, etc).LogCaptureExtension(LogLevel level)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
void
afterEach(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
void
beforeAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
void
beforeEach(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
ch.qos.logback.classic.spi.ILoggingEvent
getLogEvent(int position)
org.slf4j.Marker
getMarker(int position)
String
getMessage(int position)
void
ignoreAllMessages()
Voluntarily ignore all messages to signify they should not need to be asserted.void
ignoreAllMessages(List<Predicate<ch.qos.logback.classic.spi.ILoggingEvent>> predicates)
Voluntarily ignore all messages matching passed predicates to signify they should not need to be asserted.void
ignoreMessage(int position)
Voluntarily ignore a message to signify it should not need to be asserted.int
size()
-
-
-
Constructor Detail
-
LogCaptureExtension
public LogCaptureExtension(LogLevel level)
- Parameters:
level
- the logging level from which to start capturing logs (for example ifLogLevel.INFO
then INFO, WARN, ERROR, etc are captured too).
-
LogCaptureExtension
public LogCaptureExtension()
Captures all logs from severityLogLevel.INFO
and higher (WARN, ERROR, etc).
-
-
Method Detail
-
beforeAll
public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
- Specified by:
beforeAll
in interfaceorg.junit.jupiter.api.extension.BeforeAllCallback
-
afterAll
public void afterAll(org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Exception
- Specified by:
afterAll
in interfaceorg.junit.jupiter.api.extension.AfterAllCallback
- Throws:
Exception
-
beforeEach
public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
- Specified by:
beforeEach
in interfaceorg.junit.jupiter.api.extension.BeforeEachCallback
-
afterEach
public void afterEach(org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Exception
- Specified by:
afterEach
in interfaceorg.junit.jupiter.api.extension.AfterEachCallback
- Throws:
Exception
-
getLogEvent
public ch.qos.logback.classic.spi.ILoggingEvent getLogEvent(int position)
- Parameters:
position
- the message number in the list of captured logs- Returns:
- the logging event corresponding to the message, allowing to get information such as the level, the marker, the formatted string, etc
-
getMessage
public String getMessage(int position)
- Parameters:
position
- the message number in the list of captured logs- Returns:
- the message at the specified position
-
getMarker
public org.slf4j.Marker getMarker(int position)
- Parameters:
position
- the message number in the list of captured logs- Returns:
- the marker at the specified position
-
size
public int size()
- Returns:
- the number of log messages that have been captured
-
ignoreAllMessages
public void ignoreAllMessages()
Voluntarily ignore all messages to signify they should not need to be asserted.
-
ignoreAllMessages
public void ignoreAllMessages(List<Predicate<ch.qos.logback.classic.spi.ILoggingEvent>> predicates)
Voluntarily ignore all messages matching passed predicates to signify they should not need to be asserted.- Parameters:
predicates
- the predicate to test on the catched log events- Since:
- 16.1.0RC1, 15.10.7, 15.5.6, 14.10.2
-
ignoreMessage
public void ignoreMessage(int position)
Voluntarily ignore a message to signify it should not need to be asserted.- Parameters:
position
- the message number in the list of captured logs
-
-