From 189f149bfe6efeb1d52b1a717b7e5418f080692a Mon Sep 17 00:00:00 2001 From: Daniel Palme Date: Wed, 14 Feb 2024 21:15:40 +0100 Subject: [PATCH] #651 Added setting to add custom prefix to generated history files --- src/Readme.txt | 4 ++++ src/ReportGenerator.Core/Generator.cs | 2 +- .../Reporting/History/HistoryReportGenerator.cs | 11 +++++++++-- src/ReportGenerator.Core/Settings.cs | 5 +++++ src/ReportGenerator.Core/appsettings.json | 4 +++- 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/Readme.txt b/src/Readme.txt index bd5d4ea6..203cf75a 100644 --- a/src/Readme.txt +++ b/src/Readme.txt @@ -67,6 +67,10 @@ For further details take a look at LICENSE.txt. CHANGELOG +5.2.2.0 + + * New: #651 Added setting to add custom prefix to generated history files + 5.2.1.0 * New: Added 'Crap Score' metric for Coberatura coverage files (contrbuted by @rikrak) diff --git a/src/ReportGenerator.Core/Generator.cs b/src/ReportGenerator.Core/Generator.cs index 8cd04343..aeb72050 100644 --- a/src/ReportGenerator.Core/Generator.cs +++ b/src/ReportGenerator.Core/Generator.cs @@ -328,7 +328,7 @@ public void GenerateReport( if (historyStorage != null) { - new HistoryReportGenerator(historyStorage) + new HistoryReportGenerator(historyStorage, settings.HistoryFileNamePrefix) .CreateReport(parserResult.Assemblies, executionTime, reportConfiguration.Tag); } diff --git a/src/ReportGenerator.Core/Reporting/History/HistoryReportGenerator.cs b/src/ReportGenerator.Core/Reporting/History/HistoryReportGenerator.cs index 99a6c35c..d2639c42 100644 --- a/src/ReportGenerator.Core/Reporting/History/HistoryReportGenerator.cs +++ b/src/ReportGenerator.Core/Reporting/History/HistoryReportGenerator.cs @@ -28,13 +28,20 @@ internal class HistoryReportGenerator /// private readonly IHistoryStorage historyStorage; + /// + /// Optional custom file prefix. + /// + private readonly string customfilePrefix; + /// /// Initializes a new instance of the class. /// /// The history storage. - internal HistoryReportGenerator(IHistoryStorage historyStorage) + /// Optional custom file prefix. + internal HistoryReportGenerator(IHistoryStorage historyStorage, string customfilePrefix) { this.historyStorage = historyStorage ?? throw new ArgumentNullException(nameof(historyStorage)); + this.customfilePrefix = string.IsNullOrWhiteSpace(customfilePrefix) ? string.Empty : "_" + customfilePrefix; } /// @@ -86,7 +93,7 @@ internal void CreateReport(IEnumerable assemblies, DateTime executionT } var document = new XDocument(new XDeclaration("1.0", "UTF-8", "yes"), rootElement); - string fileName = date + "_CoverageHistory.xml"; + string fileName = date + this.customfilePrefix + "_CoverageHistory.xml"; try { using (var stream = new MemoryStream()) diff --git a/src/ReportGenerator.Core/Settings.cs b/src/ReportGenerator.Core/Settings.cs index c3f6b2ec..9d6ab185 100644 --- a/src/ReportGenerator.Core/Settings.cs +++ b/src/ReportGenerator.Core/Settings.cs @@ -75,5 +75,10 @@ public int CachingDuringOfRemoteFilesInMinutes /// Gets or sets the maximum decimal places for coverage quotas / percentages. /// public int MaximumDecimalPlacesForCoverageQuotas { get; set; } = 1; + + /// + /// Gets or sets the prefix for history files. + /// + public string HistoryFileNamePrefix { get; set; } } } diff --git a/src/ReportGenerator.Core/appsettings.json b/src/ReportGenerator.Core/appsettings.json index cd4d5eed..cd0fac04 100644 --- a/src/ReportGenerator.Core/appsettings.json +++ b/src/ReportGenerator.Core/appsettings.json @@ -18,6 +18,8 @@ "excludeTestProjects": false, "createSubdirectoryForAllReportTypes": false, "customHeadersForRemoteFiles": null, - "defaultAssemblyName": "Default" + "defaultAssemblyName": "Default", + "maximumDecimalPlacesForCoverageQuotas": 1, + "historyFileNamePrefix": null } } \ No newline at end of file