Is it what Marc Philipp was asking me on the chat? The purpose looked like a top secret ;-) but it was not because Mark needed it for testing of some internal report. Now it looks like Junit5 wants to remove the Surefire report out been dead and move these features into Junit5.
The RunListener could be always added. So it exists in JUnit4 and TestNG provider for the purposes like custom report but not the standard report. We agreed with JUnit5 developers in OpenTes4J to propose a specification for a new standard report file. This means the runners (e.g. JUnit or TestNG) should only run the tests and Maven should run the build including creation of the project site reports. The JUnit5 must not create report file because Maven controls all regarding when/where and how to save and distribute the reports in the site. Additionally, since the Maven is part of build system it may easily integrate reports to CI systems, but JUnit5 must never do this; otherwise it would be *chaos of responsibilities*. Currently the IDEs handle events programatically from JUnit4 and then they create GUI report, so the file report is useless for such GUI. The Surefire has several kinds of reports: + Testset Info + Console Report + XML test report Having the test report in JUnit5 or OpenTes4J would be architecture misunderstanding of responsibilities. It is a perfect understanding of responsibilities when we introduce extensions of these reports in Surefire and we do so as we proposed together with Kristian Rosenvold and Andreas Gudian. The same should happen with the new report standard (not only JUnit5) initiated activities by JUni5 developers. This way we will be fully consistent and users may expect clear responsibility segregation between CI/Maven/JUnit5. So I expect designing a specification of test report by OpenTes4J contributors so that the tools, like Surefire etc, can internally implement it according to their programming limitations and technologies they use. Benedikt, you can provide PR of course. It's quite simple to do - only these two simple lines as follows (motivated by what exists in JUnitCoreProvider). https://github.com/apache/maven-surefire/blob/master/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java#L101 https://github.com/apache/maven-surefire/blob/master/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java#L158 So it's quite easy because it is these two lines to add in JUnitPlatformProvider. Please improve the coverage with new unit tests and integration tests. Thx. On Thu, May 16, 2019 at 11:01 AM Benedikt Ritter <[email protected]> wrote: > Hello, > > I'm currently working on a Maven extension that needs to be notified of > what happened during test execution in Surefire. Currently it is only > possible to register test framework specific listeners via the <properties> > setting [1]. However there is also the org.apache.maven.surefire.report. > RunListener interface [2]. I would like to provide my own implementation > for this interface, but it doesn't seem to be possible. I'm willing to > provide a PR to add this functionality if there are chances to get it > merged. > > WDYT? > > Benedikt > > [1] > > https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#properties > [2] > > https://github.com/apache/maven-surefire/blob/master/surefire-api/src/main/java/org/apache/maven/surefire/report/RunListener.java >
