You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2019/05/19 21:58:48 UTC
[maven-surefire] 02/02: added documentation + unit test + updated
features + renamed 'statelessReporter' to 'statelessTestsetReporter' +
updated mockito
This is an automated email from the ASF dual-hosted git repository.
tibordigana pushed a commit to branch 1546-1222
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
commit a42f76ad4132c11a7dbb92cc630c97b29aa23909
Author: tibordigana <ti...@apache.org>
AuthorDate: Sun May 19 23:58:36 2019 +0200
added documentation + unit test + updated features + renamed 'statelessReporter' to 'statelessTestsetReporter' + updated mockito
---
.../plugin/surefire/AbstractSurefireMojo.java | 9 ++--
.../maven/plugin/surefire/CommonReflector.java | 6 +--
.../maven/plugin/surefire/MojoMocklessTest.java | 21 ++++++++-
.../src/site/apt/examples/junit-platform.apt.vm | 53 ++++++++++++++++++++++
.../src/site/apt/featurematrix.apt.vm | 13 +++++-
pom.xml | 2 +-
.../junit-platform-engine-jupiter/pom.xml | 4 +-
7 files changed, 96 insertions(+), 12 deletions(-)
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
index e878eaa..2f179e8 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
@@ -163,7 +163,7 @@ public abstract class AbstractSurefireMojo
* Note: use the legacy system property <em>disableXmlReport</em> set to {@code true} to disable the report.
*/
@Parameter
- private SurefireStatelessReporter statelessReporter;
+ private SurefireStatelessReporter statelessTestsetReporter;
@Parameter
private SurefireConsoleOutputReporter consoleOutputReporter;
@@ -685,7 +685,8 @@ public abstract class AbstractSurefireMojo
/**
* Flag to disable the generation of report files in xml format.
- * Deprecated since 3.0.0-M4. Instead use <em>disable</em> within {@code statelessReporter} since of 3.0.0-M6.
+ * Deprecated since 3.0.0-M4.
+ * Instead use <em>disable</em> within {@code statelessTestsetReporter} since of 3.0.0-M6.
* @since 2.2
*/
@Deprecated // todo make readonly to handle system property
@@ -1952,9 +1953,9 @@ public abstract class AbstractSurefireMojo
private StartupReportConfiguration getStartupReportConfiguration( String configChecksum, boolean isForkMode )
{
SurefireStatelessReporter xmlReporter =
- statelessReporter == null
+ statelessTestsetReporter == null
? new SurefireStatelessReporter( /*todo call def. constr.*/ isDisableXmlReport(), "3.0" )
- : statelessReporter;
+ : statelessTestsetReporter;
xmlReporter.setDisable( isDisableXmlReport() ); // todo change to Boolean in the version 3.0.0-M6
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/CommonReflector.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/CommonReflector.java
index b49ce4f..fc9ee51 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/CommonReflector.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/CommonReflector.java
@@ -42,7 +42,7 @@ public class CommonReflector
{
private final Class<?> startupReportConfiguration;
private final Class<?> consoleLogger;
- private final Class<?> statelessReporter;
+ private final Class<?> statelessTestsetReporter;
private final Class<?> consoleOutputReporter;
private final Class<?> statelessTestsetInfoReporter;
private final ClassLoader surefireClassLoader;
@@ -55,7 +55,7 @@ public class CommonReflector
{
startupReportConfiguration = surefireClassLoader.loadClass( StartupReportConfiguration.class.getName() );
consoleLogger = surefireClassLoader.loadClass( ConsoleLogger.class.getName() );
- statelessReporter = surefireClassLoader.loadClass( StatelessReporter.class.getName() );
+ statelessTestsetReporter = surefireClassLoader.loadClass( StatelessReporter.class.getName() );
consoleOutputReporter = surefireClassLoader.loadClass( ConsoleOutputReporter.class.getName() );
statelessTestsetInfoReporter =
surefireClassLoader.loadClass( StatelessTestsetInfoReporter.class.getName() );
@@ -82,7 +82,7 @@ public class CommonReflector
String.class, boolean.class, File.class,
boolean.class, String.class, File.class, boolean.class,
int.class, String.class, String.class, boolean.class,
- statelessReporter, consoleOutputReporter,
+ statelessTestsetReporter, consoleOutputReporter,
statelessTestsetInfoReporter );
//noinspection BooleanConstructorCall
Object[] params = { reporterConfiguration.isUseFile(), reporterConfiguration.isPrintSummary(),
diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/MojoMocklessTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/MojoMocklessTest.java
index 166cf4b..4371638 100644
--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/MojoMocklessTest.java
+++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/MojoMocklessTest.java
@@ -52,10 +52,29 @@ public class MojoMocklessTest
public void testGetStartupReportConfiguration() throws Exception
{
AbstractSurefireMojo surefirePlugin = new Mojo( null, null );
+ StartupReportConfiguration config = invokeMethod( surefirePlugin, "getStartupReportConfiguration", "", false );
+
+ assertThat( config.getXmlReporter() )
+ .isNotNull()
+ .isInstanceOf( SurefireStatelessReporter.class );
+
+ assertThat( config.getConsoleOutputReporter() )
+ .isNotNull()
+ .isInstanceOf( SurefireConsoleOutputReporter.class );
+
+ assertThat( config.getTestsetReporter() )
+ .isNotNull()
+ .isInstanceOf( SurefireStatelessTestsetInfoReporter.class );
+ }
+
+ @Test
+ public void testGetStartupReportConfiguration2() throws Exception
+ {
+ AbstractSurefireMojo surefirePlugin = new Mojo( null, null );
SurefireStatelessReporter xmlReporter = new SurefireStatelessReporter( false, "3.0" );
SurefireConsoleOutputReporter consoleReporter = new SurefireConsoleOutputReporter();
SurefireStatelessTestsetInfoReporter testsetInfoReporter = new SurefireStatelessTestsetInfoReporter();
- setInternalState( surefirePlugin, "statelessReporter", xmlReporter );
+ setInternalState( surefirePlugin, "statelessTestsetReporter", xmlReporter );
setInternalState( surefirePlugin, "consoleOutputReporter", consoleReporter );
setInternalState( surefirePlugin, "statelessTestsetInfoReporter", testsetInfoReporter );
diff --git a/maven-surefire-plugin/src/site/apt/examples/junit-platform.apt.vm b/maven-surefire-plugin/src/site/apt/examples/junit-platform.apt.vm
index 1a11987..ccc4c4a 100644
--- a/maven-surefire-plugin/src/site/apt/examples/junit-platform.apt.vm
+++ b/maven-surefire-plugin/src/site/apt/examples/junit-platform.apt.vm
@@ -309,3 +309,56 @@ else
</build>
...
+---+
+
+
+* Surefire Extensions and Reports Configuration for @DisplayName
+
+ Since plugin version 3.0.0-M4 you can use fine grained configuration of reports and enable phrased names together
+ with <<<...@DisplayName>>> in you tests.
+ This is the complete list of attributes of particular objects. You do not have to specify e.g. <<<disable>>>,
+ <<<version>>> and <<<encoding>>>. The boolean values reach default values <<<false>>> if not specified otherwise.
+
++---+
+...
+<build>
+ <plugins>
+ ...
+ <plugin>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>${project.artifactId}</artifactId>
+ <version>${project.version}</version>
+ <configuration>
+ <statelessTestsetReporter implementation="org.apache.maven.plugin.surefire.extensions.JUnit5Xml30StatelessReporter">
+ <disable>false</disable>
+ <version>3.0</version>
+ <usePhrasedFileName>false</usePhrasedFileName>
+ <usePhrasedTestSuiteClassName>true</usePhrasedTestSuiteClassName>
+ <usePhrasedTestCaseClassName>true</usePhrasedTestCaseClassName>
+ <usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
+ </statelessTestsetReporter>
+ <consoleOutputReporter implementation="org.apache.maven.plugin.surefire.extensions.JUnit5ConsoleOutputReporter">
+ <disable>false</disable>
+ <encoding>UTF-8</encoding>
+ <usePhrasedFileName>false</usePhrasedFileName>
+ </consoleOutputReporter>
+ <statelessTestsetInfoReporter implementation="org.apache.maven.plugin.surefire.extensions.JUnit5StatelessTestsetInfoReporter">
+ <disable>false</disable>
+ <usePhrasedFileName>false</usePhrasedFileName>
+ <usePhrasedClassNameInRunning>true</usePhrasedClassNameInRunning>
+ <usePhrasedClassNameInTestCaseSummary>true</usePhrasedClassNameInTestCaseSummary>
+ </statelessTestsetInfoReporter>
+ </configuration>
+ </plugin>
+ </plugins>
+</build>
+...
++---+
+
+ Default implementations of these extensions are
+ <<<org.apache.maven.plugin.surefire.extensions.SurefireStatelessReporter>>>,
+ <<<org.apache.maven.plugin.surefire.extensions.SurefireConsoleOutputReporter>>>, and
+ <<<org.apache.maven.plugin.surefire.extensions.SurefireStatelessTestsetInfoReporter>>>.
+
+ The aim of extensions is to let the users customizing the default behavior. We are keen on listing useful
+ extensions on Apache Maven Surefire site if you propagate your extensions on GitHub.
+
diff --git a/maven-surefire-plugin/src/site/apt/featurematrix.apt.vm b/maven-surefire-plugin/src/site/apt/featurematrix.apt.vm
index d4024a2..521895a 100644
--- a/maven-surefire-plugin/src/site/apt/featurematrix.apt.vm
+++ b/maven-surefire-plugin/src/site/apt/featurematrix.apt.vm
@@ -40,6 +40,14 @@ Feature Matrix
*---------------------------------------------+------------+----------+------------+-----------+----------+----------------------+
| parallel support | N | N | Y | Y | N | N |
*---------------------------------------------+------------+----------+------------+-----------+----------+----------------------+
+| custom run-listener | N | Y | Y | Y | - | N |
+*---------------------------------------------+------------+----------+------------+-----------+----------+----------------------+
+| re-run count | N | Y | Y | N | N | N |
+*---------------------------------------------+------------+----------+------------+-----------+----------+----------------------+
+| skip after failure count | N | Y | Y | Y | N | N |
+*---------------------------------------------+------------+----------+------------+-----------+----------+----------------------+
+| Surefire Extensions | Y | Y | Y | Y | Y | Y(*2) |
+*---------------------------------------------+------------+----------+------------+-----------+----------+----------------------+
Legend: "Y" means supported, "N" means not supported. "?" means not tested.
@@ -50,4 +58,7 @@ Feature Matrix
(*1) The JUnit 5 Platform supports running multiple individual test methods in a single class, but there are some
corner cases that are not supported, yet: {{{https://github.com/junit-team/junit5/issues/1343}junit-team/junit5#1343}}
- and {{{https://github.com/junit-team/junit5/issues/1406}junit-team/junit5#1406)}}.
\ No newline at end of file
+ and {{{https://github.com/junit-team/junit5/issues/1406}junit-team/junit5#1406)}}.
+
+ (*2) 3 extensions related to JUnit5 annotation <<<DisplayName>>>.
+
diff --git a/pom.xml b/pom.xml
index 113e0f7..8469f31 100644
--- a/pom.xml
+++ b/pom.xml
@@ -332,7 +332,7 @@
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
- <version>2.23.4</version>
+ <version>2.27.0</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
diff --git a/surefire-its/src/test/resources/junit-platform-engine-jupiter/pom.xml b/surefire-its/src/test/resources/junit-platform-engine-jupiter/pom.xml
index e6525e6..59d02f4 100644
--- a/surefire-its/src/test/resources/junit-platform-engine-jupiter/pom.xml
+++ b/surefire-its/src/test/resources/junit-platform-engine-jupiter/pom.xml
@@ -72,14 +72,14 @@
<configuration>
<forkCount>1.0C</forkCount>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
- <statelessReporter implementation="org.apache.maven.plugin.surefire.extensions.JUnit5Xml30StatelessReporter">
+ <statelessTestsetReporter implementation="org.apache.maven.plugin.surefire.extensions.JUnit5Xml30StatelessReporter">
<disable>false</disable>
<version>3.0</version>
<usePhrasedFileName>false</usePhrasedFileName>
<usePhrasedTestSuiteClassName>true</usePhrasedTestSuiteClassName>
<usePhrasedTestCaseClassName>true</usePhrasedTestCaseClassName>
<usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
- </statelessReporter>
+ </statelessTestsetReporter>
<consoleOutputReporter implementation="org.apache.maven.plugin.surefire.extensions.JUnit5ConsoleOutputReporter">
<disable>false</disable>
<encoding>UTF-8</encoding>