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()