diff --git a/TUnit.Engine/Reporters/Html/HtmlReportGenerator.cs b/TUnit.Engine/Reporters/Html/HtmlReportGenerator.cs index d76b810a58..887df5d4a2 100644 --- a/TUnit.Engine/Reporters/Html/HtmlReportGenerator.cs +++ b/TUnit.Engine/Reporters/Html/HtmlReportGenerator.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Net; using System.Text; using System.Text.Json; @@ -220,7 +221,7 @@ private static void AppendSummaryDashboard(StringBuilder sb, ReportSummary summa sb.AppendLine(""); sb.Append("
"); - sb.Append(passRate.ToString("F0")); + sb.Append(passRate.ToString("F0", CultureInfo.InvariantCulture)); sb.Append("%"); sb.Append(summary.Total > 0 ? "pass rate" : "no tests"); sb.AppendLine("
"); @@ -252,11 +253,11 @@ private static void AppendRingSegment(StringBuilder sb, string color, double len sb.Append(""); } @@ -368,15 +369,15 @@ private static string FormatDuration(double ms) // Show milliseconds for anything under 1 second (avoids rounding 999ms to "1.00s") if (Math.Round(ms) < 1000) { - return $"{ms:F0}ms"; + return ms.ToString("F0", CultureInfo.InvariantCulture) + "ms"; } if (ms < 60000) { - return $"{ms / 1000:F2}s"; + return (ms / 1000).ToString("F2", CultureInfo.InvariantCulture) + "s"; } - return $"{ms / 60000:F1}m"; + return (ms / 60000).ToString("F1", CultureInfo.InvariantCulture) + "m"; } private static string GetCss()