This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
The following commit(s) were added to refs/heads/master by this push:
new c67033578 [SUREFIRE-1934] Ability to disable system-out/system-err for
successfully passed tests
c67033578 is described below
commit c670335783cfcb43cfba7042b90748708eb299ce
Author: NissMoony <[email protected]>
AuthorDate: Thu Aug 24 10:00:49 2023 +0800
[SUREFIRE-1934] Ability to disable system-out/system-err for successfully
passed tests
Co-authored-by: Michael Osipov <[email protected]>
This closes #670
---
.../plugin/surefire/AbstractSurefireMojo.java | 28 ++++++++-
.../maven/plugin/surefire/CommonReflector.java | 2 +
.../surefire/StartupReportConfiguration.java | 9 +++
.../DefaultStatelessReportMojoConfiguration.java | 9 ++-
.../extensions/SurefireStatelessReporter.java | 3 +-
.../junit5/JUnit5Xml30StatelessReporter.java | 3 +-
.../surefire/report/NullStatelessXmlReporter.java | 2 +-
.../surefire/report/StatelessXmlReporter.java | 10 +++-
.../maven/plugin/surefire/CommonReflectorTest.java | 1 +
.../surefire/booterclient/ForkStarterTest.java | 2 +
.../booterclient/TestSetMockReporterFactory.java | 1 +
.../surefire/extensions/StatelessReporterTest.java | 4 +-
.../report/DefaultReporterFactoryTest.java | 3 +
.../surefire/report/StatelessXmlReporterTest.java | 13 ++--
.../api/booter/ProviderParameterNames.java | 2 +
.../StatelessReportMojoConfiguration.java | 10 +++-
.../its/jiras/Surefire1934OutErrElementsIT.java | 60 +++++++++++++++++++
.../surefire-1934-disable-out-err-elements/pom.xml | 69 +++++++++++++++++++++
.../disableOutErrElements/TestOutErrElements.java | 23 +++++++
.../surefire-1934-enable-out-err-elements/pom.xml | 70 ++++++++++++++++++++++
.../enableOutErrElements/TestOutErrElements.java | 15 +++++
.../surefire/junitcore/JUnitCoreParameters.java | 12 +++-
.../junitcore/JUnitCoreParametersTest.java | 1 +
.../maven/surefire/junitcore/JUnitCoreTester.java | 1 +
24 files changed, 337 insertions(+), 16 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 664121d04..8552fcdcc 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
@@ -690,6 +690,16 @@ public abstract class AbstractSurefireMojo extends
AbstractMojo implements Suref
@Parameter(property = "enableAssertions", defaultValue = "true")
private boolean enableAssertions;
+ /**
+ * Flag for including/excluding {@code <system-out />} and {@code
<system-err />} elements for
+ * successfully passed tests in XML reports.
+ * Note that the default value may change to {@code false} is a future
version.
+ *
+ * @since 3.3.1
+ */
+ @Parameter(property = "enableOutErrElements", defaultValue = "true")
+ private boolean enableOutErrElements;
+
/**
* The current build session instance.
*/
@@ -1474,6 +1484,10 @@ public abstract class AbstractSurefireMojo extends
AbstractMojo implements Suref
Double.toString(getParallelTestsTimeoutForcedInSeconds()));
getProperties()
.setProperty(ProviderParameterNames.PARALLEL_OPTIMIZE_PROP,
Boolean.toString(isParallelOptimized()));
+ getProperties()
+ .setProperty(
+ ProviderParameterNames.ENABLE_OUT_ERR_ELEMENTS_PROP,
+ Boolean.toString(isEnableOutErrElements()));
String message = "parallel='" + usedParallel + '\''
+ ", perCoreThreadCount=" + getPerCoreThreadCount()
@@ -1482,7 +1496,8 @@ public abstract class AbstractSurefireMojo extends
AbstractMojo implements Suref
+ ", threadCountSuites=" + getThreadCountSuites()
+ ", threadCountClasses=" + getThreadCountClasses()
+ ", threadCountMethods=" + getThreadCountMethods()
- + ", parallelOptimized=" + isParallelOptimized();
+ + ", parallelOptimized=" + isParallelOptimized()
+ + ", enableOutErrElements=" + isEnableOutErrElements();
logDebugOrCliShowErrors(message);
}
@@ -1976,6 +1991,7 @@ public abstract class AbstractSurefireMojo extends
AbstractMojo implements Suref
getReportSchemaLocation(),
getEncoding(),
isForking,
+ isEnableOutErrElements(),
xmlReporter,
outReporter,
testsetReporter);
@@ -2516,6 +2532,7 @@ public abstract class AbstractSurefireMojo extends
AbstractMojo implements Suref
checksum.add(getTempDir());
checksum.add(useModulePath());
checksum.add(getEnableProcessChecker());
+ checksum.add(isEnableOutErrElements());
addPluginSpecificChecksumItems(checksum);
return checksum.getSha1();
}
@@ -3472,6 +3489,15 @@ public abstract class AbstractSurefireMojo extends
AbstractMojo implements Suref
this.enableAssertions = enableAssertions;
}
+ public boolean isEnableOutErrElements() {
+ return enableOutErrElements;
+ }
+
+ @SuppressWarnings("UnusedDeclaration")
+ public void setEnableOutErrElements(boolean enableOutErrElements) {
+ this.enableOutErrElements = enableOutErrElements;
+ }
+
public MavenSession getSession() {
return session;
}
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 0d76ee8ce..4aaa34c63 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
@@ -86,6 +86,7 @@ public class CommonReflector {
String.class,
String.class,
boolean.class,
+ boolean.class,
statelessTestsetReporter,
consoleOutputReporter,
statelessTestsetInfoReporter);
@@ -103,6 +104,7 @@ public class CommonReflector {
reporterConfiguration.getXsdSchemaLocation(),
reporterConfiguration.getEncoding().name(),
reporterConfiguration.isForking(),
+ reporterConfiguration.isEnableOutErrElements(),
reporterConfiguration.getXmlReporter().clone(surefireClassLoader),
reporterConfiguration.getConsoleOutputReporter().clone(surefireClassLoader),
reporterConfiguration.getTestsetReporter().clone(surefireClassLoader)
diff --git
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java
index d42e22cda..b4994869e 100644
---
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java
+++
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java
@@ -85,6 +85,8 @@ public final class StartupReportConfiguration {
private final boolean isForking;
+ private final boolean enableOutErrElements;
+
private final SurefireStatelessReporter xmlReporter;
private final SurefireConsoleOutputReporter consoleOutputReporter;
@@ -108,6 +110,7 @@ public final class StartupReportConfiguration {
String xsdSchemaLocation,
String encoding,
boolean isForking,
+ boolean enableOutErrElements,
SurefireStatelessReporter xmlReporter,
SurefireConsoleOutputReporter consoleOutputReporter,
SurefireStatelessTestsetInfoReporter testsetReporter) {
@@ -127,6 +130,7 @@ public final class StartupReportConfiguration {
String charset = trimToNull(encoding);
this.encoding = charset == null ? UTF_8 : Charset.forName(charset);
this.isForking = isForking;
+ this.enableOutErrElements = enableOutErrElements;
this.xmlReporter = xmlReporter;
this.consoleOutputReporter = consoleOutputReporter;
this.testsetReporter = testsetReporter;
@@ -177,6 +181,7 @@ public final class StartupReportConfiguration {
trimStackTrace,
rerunFailingTestsCount,
xsdSchemaLocation,
+ enableOutErrElements,
testClassMethodRunHistory);
return xmlReporter.isDisable() ? null :
xmlReporter.createListener(xmlReporterConfig);
@@ -239,6 +244,10 @@ public final class StartupReportConfiguration {
return isForking;
}
+ public boolean isEnableOutErrElements() {
+ return enableOutErrElements;
+ }
+
private File resolveReportsDirectory(Integer forkNumber) {
return forkNumber == null ? reportsDirectory :
replaceForkThreadsInPath(reportsDirectory, forkNumber);
}
diff --git
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/DefaultStatelessReportMojoConfiguration.java
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/DefaultStatelessReportMojoConfiguration.java
index f134e24a2..57cae2ad9 100644
---
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/DefaultStatelessReportMojoConfiguration.java
+++
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/DefaultStatelessReportMojoConfiguration.java
@@ -43,8 +43,15 @@ public class DefaultStatelessReportMojoConfiguration extends
StatelessReportMojo
boolean trimStackTrace,
int rerunFailingTestsCount,
String xsdSchemaLocation,
+ boolean enableOutErrElements,
Map<String, Deque<WrappedReportEntry>> testClassMethodRunHistory) {
- super(reportsDirectory, reportNameSuffix, trimStackTrace,
rerunFailingTestsCount, xsdSchemaLocation);
+ super(
+ reportsDirectory,
+ reportNameSuffix,
+ trimStackTrace,
+ rerunFailingTestsCount,
+ xsdSchemaLocation,
+ enableOutErrElements);
this.testClassMethodRunHistory = testClassMethodRunHistory;
}
diff --git
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireStatelessReporter.java
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireStatelessReporter.java
index ebd7d0051..5083418bc 100644
---
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireStatelessReporter.java
+++
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireStatelessReporter.java
@@ -68,7 +68,8 @@ public class SurefireStatelessReporter
false,
false,
false,
- false);
+ false,
+ configuration.isEnableOutErrElements());
}
@Override
diff --git
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/junit5/JUnit5Xml30StatelessReporter.java
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/junit5/JUnit5Xml30StatelessReporter.java
index 689a4caed..a72f22386 100644
---
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/junit5/JUnit5Xml30StatelessReporter.java
+++
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/junit5/JUnit5Xml30StatelessReporter.java
@@ -107,7 +107,8 @@ public class JUnit5Xml30StatelessReporter extends
SurefireStatelessReporter {
getUsePhrasedFileName(),
getUsePhrasedTestSuiteClassName(),
getUsePhrasedTestCaseClassName(),
- getUsePhrasedTestCaseMethodName());
+ getUsePhrasedTestCaseMethodName(),
+ configuration.isEnableOutErrElements());
}
@Override
diff --git
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/NullStatelessXmlReporter.java
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/NullStatelessXmlReporter.java
index 73ec5a282..dc24f66a3 100644
---
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/NullStatelessXmlReporter.java
+++
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/NullStatelessXmlReporter.java
@@ -29,7 +29,7 @@ class NullStatelessXmlReporter extends StatelessXmlReporter {
static final NullStatelessXmlReporter INSTANCE = new
NullStatelessXmlReporter();
private NullStatelessXmlReporter() {
- super(null, null, false, 0, null, null, null, false, false, false,
false);
+ super(null, null, false, 0, null, null, null, false, false, false,
false, true);
}
@Override
diff --git
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
index f5f2916c5..f8c14bdaa 100644
---
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
+++
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
@@ -116,6 +116,8 @@ public class StatelessXmlReporter implements
StatelessReportEventListener<Wrappe
private final boolean phrasedMethodName;
+ private final boolean enableOutErrElements;
+
public StatelessXmlReporter(
File reportsDirectory,
String reportNameSuffix,
@@ -127,13 +129,15 @@ public class StatelessXmlReporter implements
StatelessReportEventListener<Wrappe
boolean phrasedFileName,
boolean phrasedSuiteName,
boolean phrasedClassName,
- boolean phrasedMethodName) {
+ boolean phrasedMethodName,
+ boolean enableOutErrElements) {
this.reportsDirectory = reportsDirectory;
this.reportNameSuffix = reportNameSuffix;
this.trimStackTrace = trimStackTrace;
this.rerunFailingTestsCount = rerunFailingTestsCount;
this.testClassMethodRunHistoryMap = testClassMethodRunHistoryMap;
this.xsdSchemaLocation = xsdSchemaLocation;
+ this.enableOutErrElements = enableOutErrElements;
this.xsdVersion = xsdVersion;
this.phrasedFileName = phrasedFileName;
this.phrasedSuiteName = phrasedSuiteName;
@@ -228,7 +232,9 @@ public class StatelessXmlReporter implements
StatelessReportEventListener<Wrappe
methodEntry.getReportEntryType().getXmlTag(),
false);
}
- createOutErrElements(fw, ppw, methodEntry, outputStream);
+ if (methodEntry.getReportEntryType() != SUCCESS ||
enableOutErrElements) {
+ createOutErrElements(fw, ppw, methodEntry, outputStream);
+ }
ppw.endElement();
}
}
diff --git
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/CommonReflectorTest.java
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/CommonReflectorTest.java
index 6c56e557d..45d9b27dd 100644
---
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/CommonReflectorTest.java
+++
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/CommonReflectorTest.java
@@ -82,6 +82,7 @@ public class CommonReflectorTest {
null,
null,
false,
+ true,
xmlReporter,
consoleOutputReporter,
infoReporter);
diff --git
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkStarterTest.java
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkStarterTest.java
index 7419ff3f7..b10e919b7 100644
---
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkStarterTest.java
+++
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkStarterTest.java
@@ -162,6 +162,7 @@ public class ForkStarterTest {
null,
null,
true,
+ true,
xmlReporter,
outputReporter,
statelessTestsetInfoReporter);
@@ -247,6 +248,7 @@ public class ForkStarterTest {
null,
null,
true,
+ true,
xmlReporter,
outputReporter,
statelessTestsetInfoReporter);
diff --git
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/TestSetMockReporterFactory.java
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/TestSetMockReporterFactory.java
index 4ab995739..c8dc5b236 100644
---
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/TestSetMockReporterFactory.java
+++
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/TestSetMockReporterFactory.java
@@ -66,6 +66,7 @@ public class TestSetMockReporterFactory extends
DefaultReporterFactory {
null,
null,
true,
+ true,
new SurefireStatelessReporter(),
new SurefireConsoleOutputReporter(),
new SurefireStatelessTestsetInfoReporter());
diff --git
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/StatelessReporterTest.java
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/StatelessReporterTest.java
index e034e2f56..8ee90ee2c 100644
---
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/StatelessReporterTest.java
+++
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/extensions/StatelessReporterTest.java
@@ -66,7 +66,7 @@ public class StatelessReporterTest {
String schema =
"https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd";
Map<String, Deque<WrappedReportEntry>> testClassMethodRunHistory = new
HashMap<>();
DefaultStatelessReportMojoConfiguration config = new
DefaultStatelessReportMojoConfiguration(
- reportsDirectory, reportNameSuffix, true, 5, schema,
testClassMethodRunHistory);
+ reportsDirectory, reportNameSuffix, true, 5, schema, true,
testClassMethodRunHistory);
SurefireStatelessReporter extension = new SurefireStatelessReporter();
assertThat(extension.getVersion()).isEqualTo("3.0.1");
@@ -141,7 +141,7 @@ public class StatelessReporterTest {
String schema =
"https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd";
Map<String, Deque<WrappedReportEntry>> testClassMethodRunHistory = new
HashMap<>();
DefaultStatelessReportMojoConfiguration config = new
DefaultStatelessReportMojoConfiguration(
- reportsDirectory, reportNameSuffix, true, 5, schema,
testClassMethodRunHistory);
+ reportsDirectory, reportNameSuffix, true, 5, schema, true,
testClassMethodRunHistory);
JUnit5Xml30StatelessReporter extension = new
JUnit5Xml30StatelessReporter();
assertThat(extension.getVersion()).isEqualTo("3.0.1");
diff --git
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java
index e767c30f1..081248f47 100644
---
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java
+++
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactoryTest.java
@@ -85,6 +85,7 @@ public class DefaultReporterFactoryTest extends TestCase {
null,
null,
false,
+ true,
new SurefireStatelessReporter(),
new SurefireConsoleOutputReporter(),
new SurefireStatelessTestsetInfoReporter());
@@ -288,6 +289,7 @@ public class DefaultReporterFactoryTest extends TestCase {
null,
null,
false,
+ true,
new SurefireStatelessReporter(),
new SurefireConsoleOutputReporter(),
new SurefireStatelessTestsetInfoReporter());
@@ -352,6 +354,7 @@ public class DefaultReporterFactoryTest extends TestCase {
null,
null,
false,
+ true,
new SurefireStatelessReporter(),
new SurefireConsoleOutputReporter(),
new SurefireStatelessTestsetInfoReporter());
diff --git
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java
index f46bb2001..70e87e0e1 100644
---
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java
+++
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java
@@ -109,7 +109,8 @@ public class StatelessXmlReporterTest extends TestCase {
false,
false,
false,
- false);
+ false,
+ true);
reporter.cleanTestHistoryMap();
ReportEntry reportEntry = new SimpleReportEntry(
@@ -169,7 +170,8 @@ public class StatelessXmlReporterTest extends TestCase {
false,
false,
false,
- false);
+ false,
+ true);
reporter.testSetCompleted(testSetReportEntry, stats);
FileInputStream fileInputStream = new
FileInputStream(expectedReportFile);
@@ -271,7 +273,8 @@ public class StatelessXmlReporterTest extends TestCase {
false,
false,
false,
- false);
+ false,
+ true);
reporter.testSetCompleted(testSetReportEntry, stats);
reporter.testSetCompleted(testSetReportEntry, rerunStats);
@@ -370,7 +373,7 @@ public class StatelessXmlReporterTest extends TestCase {
rerunStats.testSucceeded(testTwoSecondError);
StatelessXmlReporter reporter = new StatelessXmlReporter(
- reportDir, null, false, 1, new HashMap<>(), XSD, "3.0.1",
false, false, false, false);
+ reportDir, null, false, 1, new HashMap<>(), XSD, "3.0.1",
false, false, false, false, true);
WrappedReportEntry testSetReportEntry = new WrappedReportEntry(
new SimpleReportEntry(
@@ -534,7 +537,7 @@ public class StatelessXmlReporterTest extends TestCase {
null);
StatelessXmlReporter reporter = new StatelessXmlReporter(
- reportDir, null, false, 1, new HashMap<>(), XSD, "3.0.1",
false, false, false, false);
+ reportDir, null, false, 1, new HashMap<>(), XSD, "3.0.1",
false, false, false, false, true);
reporter.testSetCompleted(testReport, stats);
}
diff --git
a/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/ProviderParameterNames.java
b/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/ProviderParameterNames.java
index d59d3de3e..95da2d3be 100644
---
a/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/ProviderParameterNames.java
+++
b/surefire-api/src/main/java/org/apache/maven/surefire/api/booter/ProviderParameterNames.java
@@ -45,4 +45,6 @@ public class ProviderParameterNames {
public static final String PARALLEL_TIMEOUTFORCED_PROP =
"paralleltimeoutforced";
public static final String PARALLEL_OPTIMIZE_PROP = "paralleloptimization";
+
+ public static final String ENABLE_OUT_ERR_ELEMENTS_PROP =
"enableouterrelements";
}
diff --git
a/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/StatelessReportMojoConfiguration.java
b/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/StatelessReportMojoConfiguration.java
index f0424207a..ec3716deb 100644
---
a/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/StatelessReportMojoConfiguration.java
+++
b/surefire-extensions-api/src/main/java/org/apache/maven/surefire/extensions/StatelessReportMojoConfiguration.java
@@ -36,17 +36,21 @@ public class StatelessReportMojoConfiguration {
private final String xsdSchemaLocation;
+ private final boolean enableOutErrElements;
+
public StatelessReportMojoConfiguration(
File reportsDirectory,
String reportNameSuffix,
boolean trimStackTrace,
int rerunFailingTestsCount,
- String xsdSchemaLocation) {
+ String xsdSchemaLocation,
+ boolean enableOutErrElements) {
this.reportsDirectory = reportsDirectory;
this.reportNameSuffix = reportNameSuffix;
this.trimStackTrace = trimStackTrace;
this.rerunFailingTestsCount = rerunFailingTestsCount;
this.xsdSchemaLocation = xsdSchemaLocation;
+ this.enableOutErrElements = enableOutErrElements;
}
public File getReportsDirectory() {
@@ -68,4 +72,8 @@ public class StatelessReportMojoConfiguration {
public String getXsdSchemaLocation() {
return xsdSchemaLocation;
}
+
+ public boolean isEnableOutErrElements() {
+ return enableOutErrElements;
+ }
}
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1934OutErrElementsIT.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1934OutErrElementsIT.java
new file mode 100644
index 000000000..8f46ce779
--- /dev/null
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1934OutErrElementsIT.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.surefire.its.jiras;
+
+import org.apache.maven.surefire.its.fixture.OutputValidator;
+import org.apache.maven.surefire.its.fixture.SurefireJUnit4IntegrationTestCase;
+import org.apache.maven.surefire.its.fixture.TestFile;
+import org.junit.Test;
+
+/**
+ * Test for SUREFURE-1934. Enabling and disabling system-out and system-err
elements in plugin configuration.
+ *
+ * @author NissMoony
+ */
+public class Surefire1934OutErrElementsIT extends
SurefireJUnit4IntegrationTestCase {
+
+ @Test
+ public void testOutErrElementsDisabled() {
+ final OutputValidator outputValidator =
unpack("/surefire-1934-disable-out-err-elements")
+ .maven()
+ .withFailure()
+ .executeTest();
+ final TestFile reportFile =
+
outputValidator.getSurefireReportsXmlFile("TEST-disableOutErrElements.TestOutErrElements.xml");
+
+ reportFile.assertNotContainsText("<system-out><![CDATA[System-out
output not expected in the report.");
+ reportFile.assertNotContainsText(
+ "<system-err><![CDATA[[main] INFO
disableOutErrElements.TestOutErrElements - Log output not expected in test
report.");
+ reportFile.assertContainsText("<system-out><![CDATA[System-out output
expected in the report.");
+ reportFile.assertContainsText(
+ "<system-err><![CDATA[[main] INFO
disableOutErrElements.TestOutErrElements - Log output expected in test
report.");
+ }
+
+ @Test
+ public void testOutErrElementsEnabled() {
+ final OutputValidator outputValidator =
+ unpack("/surefire-1934-enable-out-err-elements").executeTest();
+ final TestFile reportFile =
+
outputValidator.getSurefireReportsXmlFile("TEST-enableOutErrElements.TestOutErrElements.xml");
+
+ reportFile.assertContainsText("<system-out>");
+ reportFile.assertContainsText("<system-err>");
+ }
+}
diff --git
a/surefire-its/src/test/resources/surefire-1934-disable-out-err-elements/pom.xml
b/surefire-its/src/test/resources/surefire-1934-disable-out-err-elements/pom.xml
new file mode 100644
index 000000000..4deef9036
--- /dev/null
+++
b/surefire-its/src/test/resources/surefire-1934-disable-out-err-elements/pom.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.maven.surefire</groupId>
+ <artifactId>it-parent</artifactId>
+ <version>1.0</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.apache.maven.plugins.surefire</groupId>
+ <artifactId>surefire-1934-disable-out-err-elements</artifactId>
+ <version>1.0</version>
+ <url>http://maven.apache.org</url>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${surefire.version}</version>
+ <configuration>
+ <enableOutErrElements>false</enableOutErrElements>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git
a/surefire-its/src/test/resources/surefire-1934-disable-out-err-elements/src/test/java/disableOutErrElements/TestOutErrElements.java
b/surefire-its/src/test/resources/surefire-1934-disable-out-err-elements/src/test/java/disableOutErrElements/TestOutErrElements.java
new file mode 100644
index 000000000..95f4cae46
--- /dev/null
+++
b/surefire-its/src/test/resources/surefire-1934-disable-out-err-elements/src/test/java/disableOutErrElements/TestOutErrElements.java
@@ -0,0 +1,23 @@
+package disableOutErrElements;
+
+import org.junit.Test;
+import org.slf4j.LoggerFactory;
+
+public class TestOutErrElements {
+
+ @Test
+ public void successfulTestWithLogs() {
+ LoggerFactory.getLogger(TestOutErrElements.class).info("Log output not
expected in test report.");
+ System.out.println("System-out output not expected in the report.");
+ System.err.println("System-err output not expected in the report.");
+ }
+
+ @Test
+ public void failedTestWithLogs() throws Exception {
+ LoggerFactory.getLogger(TestOutErrElements.class).info("Log output
expected in test report.");
+ System.out.println("System-out output expected in the report.");
+ System.err.println("System-err output expected in the report.");
+ throw new Exception("Expected to fail");
+ }
+
+}
diff --git
a/surefire-its/src/test/resources/surefire-1934-enable-out-err-elements/pom.xml
b/surefire-its/src/test/resources/surefire-1934-enable-out-err-elements/pom.xml
new file mode 100644
index 000000000..7b0723b68
--- /dev/null
+++
b/surefire-its/src/test/resources/surefire-1934-enable-out-err-elements/pom.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.maven.surefire</groupId>
+ <artifactId>it-parent</artifactId>
+ <version>1.0</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.apache.maven.plugins.surefire</groupId>
+ <artifactId>surefire-1934-disable-out-err-elements</artifactId>
+ <version>1.0</version>
+ <url>http://maven.apache.org</url>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.36</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${surefire.version}</version>
+ <configuration>
+ <!-- Default value, but setting it explicitly for test -->
+ <enableOutErrElements>true</enableOutErrElements>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git
a/surefire-its/src/test/resources/surefire-1934-enable-out-err-elements/src/test/java/enableOutErrElements/TestOutErrElements.java
b/surefire-its/src/test/resources/surefire-1934-enable-out-err-elements/src/test/java/enableOutErrElements/TestOutErrElements.java
new file mode 100644
index 000000000..37f106cc8
--- /dev/null
+++
b/surefire-its/src/test/resources/surefire-1934-enable-out-err-elements/src/test/java/enableOutErrElements/TestOutErrElements.java
@@ -0,0 +1,15 @@
+package enableOutErrElements;
+
+import org.junit.Test;
+import org.slf4j.LoggerFactory;
+
+public class TestOutErrElements {
+
+ @Test
+ public void successfulTestWithLogs() {
+ LoggerFactory.getLogger(TestOutErrElements.class).info("Log output
expected in test report.");
+ System.out.println("System-out output expected in the report.");
+ System.err.println("System-err output expected in the report.");
+ }
+
+}
diff --git
a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreParameters.java
b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreParameters.java
index 600baf476..3e9beca45 100644
---
a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreParameters.java
+++
b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreParameters.java
@@ -48,6 +48,8 @@ public final class JUnitCoreParameters {
public static final String PARALLEL_OPTIMIZE_KEY =
ProviderParameterNames.PARALLEL_OPTIMIZE_PROP;
+ public static final String ENABLE_OUT_ERR_ELEMENTS_KEY =
ProviderParameterNames.ENABLE_OUT_ERR_ELEMENTS_PROP;
+
private final String parallel;
private final boolean perCoreThreadCount;
@@ -68,6 +70,8 @@ public final class JUnitCoreParameters {
private final boolean parallelOptimization;
+ private final boolean enableOutErrElements;
+
public JUnitCoreParameters(Map<String, String> properties) {
parallel = property(properties, PARALLEL_KEY, "none").toLowerCase();
perCoreThreadCount = property(properties, PERCORETHREADCOUNT_KEY,
true);
@@ -79,6 +83,7 @@ public final class JUnitCoreParameters {
parallelTestsTimeoutInSeconds = Math.max(property(properties,
PARALLEL_TIMEOUT_KEY, 0d), 0);
parallelTestsTimeoutForcedInSeconds = Math.max(property(properties,
PARALLEL_TIMEOUTFORCED_KEY, 0d), 0);
parallelOptimization = property(properties, PARALLEL_OPTIMIZE_KEY,
true);
+ enableOutErrElements = property(properties,
ENABLE_OUT_ERR_ELEMENTS_KEY, true);
}
private static Collection<String> lowerCase(String... elements) {
@@ -164,13 +169,18 @@ public final class JUnitCoreParameters {
return parallelOptimization;
}
+ public boolean isEnableOutErrElements() {
+ return enableOutErrElements;
+ }
+
@Override
public String toString() {
return "parallel='" + parallel + '\'' + ", perCoreThreadCount=" +
perCoreThreadCount + ", threadCount="
+ threadCount + ", useUnlimitedThreads=" + useUnlimitedThreads
+ ", threadCountSuites="
+ threadCountSuites
+ ", threadCountClasses=" + threadCountClasses + ",
threadCountMethods=" + threadCountMethods
- + ", parallelOptimization=" + parallelOptimization;
+ + ", parallelOptimization=" + parallelOptimization
+ + ", enableOutErrElements=" + enableOutErrElements;
}
private static boolean property(Map<String, String> properties, String
key, boolean fallback) {
diff --git
a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreParametersTest.java
b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreParametersTest.java
index 8dd9f55da..c635ca0d5 100644
---
a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreParametersTest.java
+++
b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreParametersTest.java
@@ -45,6 +45,7 @@ public class JUnitCoreParametersTest {
assertThat(newTestSetDefault().getParallelTestsTimeoutInSeconds(),
is(0d));
assertThat(newTestSetDefault().getParallelTestsTimeoutForcedInSeconds(),
is(0d));
assertTrue(newTestSetDefault().isParallelOptimization());
+ assertTrue(newTestSetDefault().isEnableOutErrElements());
}
@Test
diff --git
a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java
b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java
index ef9c00c70..279a5c405 100644
---
a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java
+++
b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java
@@ -109,6 +109,7 @@ public class JUnitCoreTester {
null,
null,
false,
+ true,
new SurefireStatelessReporter(),
new SurefireConsoleOutputReporter(),
new SurefireStatelessTestsetInfoReporter());