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 <micha...@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,

Reply via email to