You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2023/05/19 18:06:17 UTC
[maven-surefire] branch backport updated (efa2ecafe -> d6c99fd1d)
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a change to branch backport
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
from efa2ecafe Use simple String#valueOf() to convert a float to a string
new e0a328f89 Simplify link creation
new 900eccd93 Improve string representation of elapsed time
new d6c99fd1d Use choice message format to render percentage and time
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../plugin/surefire/report/ReporterUtils.java | 44 ----------------------
.../plugin/surefire/report/WrappedReportEntry.java | 14 ++++---
.../surefire/report/SurefireReportRenderer.java | 42 ++++++++++-----------
.../src/main/resources/surefire-report.properties | 3 ++
.../main/resources/surefire-report_de.properties | 1 +
.../main/resources/surefire-report_sv.properties | 1 +
.../plugins/surefire/report/Surefire597Test.java | 6 +--
7 files changed, 36 insertions(+), 75 deletions(-)
delete mode 100644 maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ReporterUtils.java
[maven-surefire] 03/03: Use choice message format to render percentage and time
Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch backport
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
commit d6c99fd1d10172f78e5b6b02a9da754107d6cc73
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Fri May 19 20:05:42 2023 +0200
Use choice message format to render percentage and time
---
.../surefire/report/SurefireReportRenderer.java | 38 ++++++++++------------
.../src/main/resources/surefire-report.properties | 3 ++
.../main/resources/surefire-report_de.properties | 1 +
.../main/resources/surefire-report_sv.properties | 1 +
.../plugins/surefire/report/Surefire597Test.java | 6 ++--
5 files changed, 25 insertions(+), 24 deletions(-)
diff --git a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java
index 9cf0039a7..4befee936 100644
--- a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java
+++ b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java
@@ -19,7 +19,7 @@
package org.apache.maven.plugins.surefire.report;
import java.io.File;
-import java.text.NumberFormat;
+import java.text.MessageFormat;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -100,6 +100,15 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
return i18n.getString("surefire-report", locale, "report." + section + '.' + key);
}
+ /**
+ * @param section The section.
+ * @param key The key to translate.
+ * @return the translated key.
+ */
+ private String formatI18nString(String section, String key, Object... args) {
+ return i18n.format("surefire-report", locale, "report." + section + '.' + key, args);
+ }
+
public void renderBody() {
javaScript(javascriptToggleDisplayCode());
@@ -120,9 +129,6 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
private void renderSectionSummary() {
Map<String, Object> summary = parser.getSummary(testSuites);
- NumberFormat numberFormat = NumberFormat.getNumberInstance(locale);
- NumberFormat percentFormat = NumberFormat.getPercentInstance(locale);
- percentFormat.setMinimumFractionDigits(1);
sink.section1();
sinkAnchor("Summary");
@@ -150,8 +156,8 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
String.valueOf(summary.get("totalErrors")),
String.valueOf(summary.get("totalFailures")),
String.valueOf(summary.get("totalSkipped")),
- percentFormat.format(summary.get("totalPercentage")),
- numberFormat.format(summary.get("totalElapsedTime")) + " s"
+ formatI18nString("surefire", "value.successrate", summary.get("totalPercentage")),
+ formatI18nString("surefire", "value.time", summary.get("totalElapsedTime"))
});
endTable();
@@ -171,10 +177,6 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
return;
}
- NumberFormat numberFormat = NumberFormat.getNumberInstance(locale);
- NumberFormat percentFormat = NumberFormat.getPercentInstance(locale);
- percentFormat.setMinimumFractionDigits(1);
-
sink.section1();
sinkAnchor("Package_List");
sink.sectionTitle1();
@@ -210,8 +212,8 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
String.valueOf(packageSummary.get("totalErrors")),
String.valueOf(packageSummary.get("totalFailures")),
String.valueOf(packageSummary.get("totalSkipped")),
- percentFormat.format(packageSummary.get("totalPercentage")),
- numberFormat.format(packageSummary.get("totalElapsedTime")) + " s"
+ formatI18nString("surefire", "value.successrate", packageSummary.get("totalPercentage")),
+ formatI18nString("surefire", "value.time", packageSummary.get("totalElapsedTime"))
});
}
@@ -273,10 +275,6 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
}
private void renderSectionTestSuite(ReportTestSuite suite) {
- NumberFormat numberFormat = NumberFormat.getNumberInstance(locale);
- NumberFormat percentFormat = NumberFormat.getPercentInstance(locale);
- percentFormat.setMinimumFractionDigits(1);
-
sink.tableRow();
sink.tableCell();
@@ -310,9 +308,9 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
float percentage = parser.computePercentage(
suite.getNumberOfTests(), suite.getNumberOfErrors(),
suite.getNumberOfFailures(), suite.getNumberOfSkipped());
- tableCell(percentFormat.format(percentage));
+ tableCell(formatI18nString("surefire", "value.successrate", percentage));
- tableCell(numberFormat.format(suite.getTimeElapsed()) + " s");
+ tableCell(formatI18nString("surefire", "value.time", suite.getTimeElapsed()));
sink.tableRow_();
}
@@ -372,8 +370,6 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
}
private void constructTestCaseSection(ReportTestCase testCase) {
- NumberFormat numberFormat = NumberFormat.getNumberInstance(locale);
-
sink.tableRow();
sink.tableCell();
@@ -427,7 +423,7 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
sinkCellAnchor(testCase.getName(), "TC_" + toHtmlId(testCase.getFullName()));
}
- tableCell(numberFormat.format(testCase.getTime()) + " s");
+ tableCell(formatI18nString("surefire", "value.time", testCase.getTime()));
sink.tableRow_();
diff --git a/maven-surefire-report-plugin/src/main/resources/surefire-report.properties b/maven-surefire-report-plugin/src/main/resources/surefire-report.properties
index 2b68fbb02..2159111af 100644
--- a/maven-surefire-report-plugin/src/main/resources/surefire-report.properties
+++ b/maven-surefire-report-plugin/src/main/resources/surefire-report.properties
@@ -35,6 +35,9 @@ report.surefire.label.testcases=Test Cases
report.surefire.label.failuredetails=Failure Details
report.surefire.text.note1=Note: failures are anticipated and checked for with assertions while errors are unanticipated.
report.surefire.text.note2=Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.
+report.surefire.value.successrate={0,choice,0#0%|0.0<{0,number,0.0%}|1#{0,number,0%}}
+# Needs to be copied into other bundles only if non-Latin script is used
+report.surefire.value.time={0,choice,0#0|0.0<{0,number,0.000}|1.0#{0,number,0.0}|1000#{0,number,0}} s
report.failsafe.name=Failsafe
report.failsafe.description=Report on the integration test results of the project.
diff --git a/maven-surefire-report-plugin/src/main/resources/surefire-report_de.properties b/maven-surefire-report-plugin/src/main/resources/surefire-report_de.properties
index 2a3bb905e..2867ac5d2 100644
--- a/maven-surefire-report-plugin/src/main/resources/surefire-report_de.properties
+++ b/maven-surefire-report-plugin/src/main/resources/surefire-report_de.properties
@@ -35,6 +35,7 @@ report.surefire.label.tests=Tests
report.surefire.label.time =Zeit
report.surefire.text.note1 =Hinweis: Fehlschl\u00E4ge werden erwartet und durch Behauptungen \u00FCberpr\u00FCft w\u00E4hrend Fehler unerwartet sind.
report.surefire.text.note2 =Hinweis: Die Paketstatistiken werden nicht rekursiv berechnet, es werden lediglich die Ergebnisse aller enthaltenen Tests aufsummiert.
+report.surefire.value.successrate={0,choice,0#0 %|0.0<{0,number,0.0 %}|1#{0,number,0 %}}
report.failsafe.name=Failsafe
report.failsafe.description=Bericht \u00FCber die Integrationstestresultate des Projekts.
diff --git a/maven-surefire-report-plugin/src/main/resources/surefire-report_sv.properties b/maven-surefire-report-plugin/src/main/resources/surefire-report_sv.properties
index 3b60a603c..d1b69679b 100644
--- a/maven-surefire-report-plugin/src/main/resources/surefire-report_sv.properties
+++ b/maven-surefire-report-plugin/src/main/resources/surefire-report_sv.properties
@@ -35,6 +35,7 @@ report.surefire.label.testcases=Testfall
report.surefire.label.failuredetails=Detaljer om misslyckade tester
report.surefire.text.note1=Notera: misslyckade tester \u00e4r f\u00f6rv\u00e4ntade och har kontrollerats med assertions medan felaktiga tester \u00e4r ov\u00e4ntade.
report.surefire.text.note2=Notera: paketstatistiken ber\u00e4knas inte rekursivt, den summerar bara alla testsviters antal.
+report.surefire.value.successrate={0,choice,0#0 %|0.0<{0,number,0.0 %}|1#{0,number,0 %}}
report.failsafe.name=Failsafe
report.failsafe.description=Rapport om integration testresultaten f\u00f6r projektet.
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Surefire597Test.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Surefire597Test.java
index f1a45fdc2..598c91678 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Surefire597Test.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Surefire597Test.java
@@ -66,7 +66,7 @@ public class Surefire597Test extends TestCase {
+ "<td>1</td>\n"
+ "<td>0</td>\n"
+ "<td>0</td>\n"
- + "<td>0.0%</td>\n"
+ + "<td>0%</td>\n"
+ "<td>0 s</td>"
+ "</tr>"
+ "</table>")));
@@ -87,7 +87,7 @@ public class Surefire597Test extends TestCase {
+ "<td>1</td>\n"
+ "<td>0</td>\n"
+ "<td>0</td>\n"
- + "<td>0.0%</td>\n"
+ + "<td>0%</td>\n"
+ "<td>0 s</td></tr></table>")));
assertThat(
xml,
@@ -108,7 +108,7 @@ public class Surefire597Test extends TestCase {
+ "<td>1</td>\n"
+ "<td>0</td>\n"
+ "<td>0</td>\n"
- + "<td>0.0%</td>\n"
+ + "<td>0%</td>\n"
+ "<td>0 s</td></tr></table>")));
assertThat(
xml,
[maven-surefire] 02/03: Improve string representation of elapsed time
Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch backport
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
commit 900eccd937b87d6d8d33d0548f106e8a54461443
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Fri May 19 19:57:27 2023 +0200
Improve string representation of elapsed time
---
.../plugin/surefire/report/ReporterUtils.java | 44 ----------------------
.../plugin/surefire/report/WrappedReportEntry.java | 14 ++++---
2 files changed, 9 insertions(+), 49 deletions(-)
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ReporterUtils.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ReporterUtils.java
deleted file mode 100644
index a673a18d0..000000000
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ReporterUtils.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.plugin.surefire.report;
-
-import java.text.NumberFormat;
-import java.util.Locale;
-
-/**
- * Utility for reporter classes.
- *
- * @author <a href="mailto:tibordigana@apache.org">Tibor Digana (tibor17)</a>
- * @since 2.19
- */
-final class ReporterUtils {
- private static final int MS_PER_SEC = 1000;
-
- private ReporterUtils() {
- throw new IllegalStateException("non instantiable constructor");
- }
-
- static String formatElapsedTime(double runTime) {
- NumberFormat numberFormat = NumberFormat.getInstance(Locale.ENGLISH);
- numberFormat.setGroupingUsed(true);
- numberFormat.setMinimumFractionDigits(0);
- numberFormat.setMaximumFractionDigits(3);
- return numberFormat.format(runTime / MS_PER_SEC);
- }
-}
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/WrappedReportEntry.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/WrappedReportEntry.java
index 97b3734c2..bbe1b357b 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/WrappedReportEntry.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/WrappedReportEntry.java
@@ -20,7 +20,9 @@ package org.apache.maven.plugin.surefire.report;
import javax.annotation.Nonnull;
+import java.text.MessageFormat;
import java.util.Collections;
+import java.util.Locale;
import java.util.Map;
import org.apache.maven.surefire.api.report.ReportEntry;
@@ -29,7 +31,6 @@ import org.apache.maven.surefire.api.report.StackTraceWriter;
import org.apache.maven.surefire.api.report.TestSetReportEntry;
import static java.util.Collections.unmodifiableMap;
-import static org.apache.maven.plugin.surefire.report.ReporterUtils.formatElapsedTime;
import static org.apache.maven.surefire.api.util.internal.StringUtils.NL;
import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank;
@@ -49,6 +50,9 @@ public class WrappedReportEntry implements TestSetReportEntry {
private final Map<String, String> systemProperties;
+ private final MessageFormat elapsedTimeFormat = new MessageFormat(
+ "{0,choice,0#0|0.0<{0,number,0.000}|1.0#{0,number,0.0}|1000#{0,number,0}} s", Locale.ROOT);
+
public WrappedReportEntry(
ReportEntry original,
ReportEntryType reportEntryType,
@@ -140,7 +144,7 @@ public class WrappedReportEntry implements TestSetReportEntry {
}
public String elapsedTimeAsString() {
- return formatElapsedTime(getElapsed());
+ return getElapsed() != null ? elapsedTimeFormat.format(new Object[] {getElapsed() / 1000.0f}) : null;
}
String getReportSourceName() {
@@ -165,18 +169,18 @@ public class WrappedReportEntry implements TestSetReportEntry {
public String getOutput(boolean trimStackTrace) {
String outputLine =
- getElapsedTimeSummary() + " <<< " + getReportEntryType().name() + "!";
+ getElapsedTimeSummary() + " <<< " + getReportEntryType().name() + "!";
String trimmedStackTrace = getStackTrace(trimStackTrace);
return trimmedStackTrace == null ? outputLine : outputLine + NL + trimmedStackTrace;
}
public String getElapsedTimeVerbose() {
- return "Time elapsed: " + elapsedTimeAsString() + " s";
+ return "Time elapsed: " + (getElapsed() != null ? elapsedTimeAsString(): "(unknown)");
}
public String getElapsedTimeSummary() {
String description = getName() == null ? getSourceName() : getClassMethodName();
- return description + " " + getElapsedTimeVerbose();
+ return description + " " + getElapsedTimeVerbose();
}
public boolean isErrorOrFailure() {
[maven-surefire] 01/03: Simplify link creation
Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch backport
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
commit e0a328f89f4eaa9d7b7fddc9345ee7a6f8b8bdd6
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Fri May 19 19:23:43 2023 +0200
Simplify link creation
---
.../apache/maven/plugins/surefire/report/SurefireReportRenderer.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java
index 4910c966c..9cf0039a7 100644
--- a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java
+++ b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java
@@ -205,7 +205,7 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
Map<String, Object> packageSummary = parser.getSummary(testSuiteList);
tableRow(new String[] {
- '{' + packageName + ", #" + packageName + '}',
+ createLinkPatternedText(packageName, '#' + packageName),
String.valueOf(packageSummary.get("totalTests")),
String.valueOf(packageSummary.get("totalErrors")),
String.valueOf(packageSummary.get("totalFailures")),
@@ -297,7 +297,7 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
sink.tableCell_();
- tableCell('{' + suite.getName() + ", #" + suite.getPackageName() + '.' + suite.getName() + '}');
+ tableCell(createLinkPatternedText(suite.getName(), '#' + suite.getPackageName() + '.' + suite.getName()));
tableCell(Integer.toString(suite.getNumberOfTests()));