Interface TestReportListener<T extends OutputReportEntry>

  • Type Parameters:
    T - usually TestOutputReportEntry or OutputReportEntry
    All Superinterfaces:
    org.apache.maven.plugin.surefire.log.api.ConsoleLogger, RunListener, TestOutputReceiver<T>
    All Known Implementing Classes:
    ForkingRunListener

    public interface TestReportListener<T extends OutputReportEntry>
    extends RunListener, TestOutputReceiver<T>, org.apache.maven.plugin.surefire.log.api.ConsoleLogger
    This architecture has two sides (forked JVM, plugin JVM) implementing the same interface TestReportListener:
     1. publisher - surefire fork JVM: ForkingRunListener
        registered in SurefireProvider
     2. consumer - plugin JVM: TestSetRunListener registered in the ForkClient
     
    Both implementations of TestReportListener, i.e. ForkingRunListener and TestSetRunListener are decorators. They are used as delegators in interface adapters, see the implementations of JUnit's RunListener RunListener-s.
    The serialization of data in TestReportListener ensures that the ReportEntries are transferred from the fork to the plugin.
    Note: The adapters in the module surefire-junit47 are temporal and will be removed after we have fixed the SUREFIRE-1860 and XML reporter in SUREFIRE-1643. The adapters are a workaround of a real fix in both Jira issues.