diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 093787b1..7ffe13db 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -6,7 +6,7 @@ env:
solution: 'src\ReportGenerator.sln'
buildPlatform: Any CPU
buildConfiguration: Release
- version: 5.1.3
+ version: 5.1.4
dotnetSDKVersion: 6.0.201
nodeVersion: 16
@@ -78,7 +78,7 @@ jobs:
run: dotnet test src\ReportGenerator.Core.Test\ReportGenerator.Core.Test.csproj --configuration ${{ env.BuildConfiguration }} --no-build /p:CollectCoverage=true /p:DeterministicSourcePaths=true /p:IncludeTestAssembly=true /p:CoverletOutputFormat=opencover%2ccobertura /p:CoverletOutput=../target/reports/coverage/
- name: ReportGenerator
- uses: danielpalme/ReportGenerator-GitHub-Action@5.0.2
+ uses: danielpalme/ReportGenerator-GitHub-Action@5.1.3
with:
reports: 'src\target\reports\coverage\coverage.opencover.xml'
targetdir: 'src\target\reports\coverage'
diff --git a/src/AzureDevopsTask/ReportGenerator/task.json b/src/AzureDevopsTask/ReportGenerator/task.json
index 37b62ecd..92768b60 100644
--- a/src/AzureDevopsTask/ReportGenerator/task.json
+++ b/src/AzureDevopsTask/ReportGenerator/task.json
@@ -13,7 +13,7 @@
"version": {
"Major": 5,
"Minor": 1,
- "Patch": 3
+ "Patch": 4
},
"instanceNameFormat": "ReportGenerator",
"groups": [
diff --git a/src/AzureDevopsTask/vss-extension.json b/src/AzureDevopsTask/vss-extension.json
index 47363d0a..c13d6b99 100644
--- a/src/AzureDevopsTask/vss-extension.json
+++ b/src/AzureDevopsTask/vss-extension.json
@@ -2,7 +2,7 @@
"manifestVersion": 1,
"id": "reportgenerator",
"name": "ReportGenerator",
- "version": "5.1.3",
+ "version": "5.1.4",
"publisher": "Palmmedia",
"public": true,
"targets": [
diff --git a/src/Readme.txt b/src/Readme.txt
index 75b15c77..d0bb49fa 100644
--- a/src/Readme.txt
+++ b/src/Readme.txt
@@ -67,6 +67,10 @@ For further details take a look at LICENSE.txt.
CHANGELOG
+5.1.4.0
+
+ * Fix: #408: Improved support for generic classes for 'dotnet-coverage'
+
5.1.3.0
* Fix: #503: Updated System.Text.Encodings.Web
diff --git a/src/ReportGenerator.Console.NetCore/ReportGenerator.Console.NetCore.csproj b/src/ReportGenerator.Console.NetCore/ReportGenerator.Console.NetCore.csproj
index 6dc6cf86..d7dd6d46 100644
--- a/src/ReportGenerator.Console.NetCore/ReportGenerator.Console.NetCore.csproj
+++ b/src/ReportGenerator.Console.NetCore/ReportGenerator.Console.NetCore.csproj
@@ -7,8 +7,8 @@
ReportGenerator
Palmmedia.ReportGenerator
Palmmedia.ReportGenerator.Console.NetCore.Program
- 5.1.3.0
- 5.1.3.0
+ 5.1.4.0
+ 5.1.4.0
diff --git a/src/ReportGenerator.Core.Test/ReportGenerator.Core.Test.csproj b/src/ReportGenerator.Core.Test/ReportGenerator.Core.Test.csproj
index 24194431..007a6e7c 100644
--- a/src/ReportGenerator.Core.Test/ReportGenerator.Core.Test.csproj
+++ b/src/ReportGenerator.Core.Test/ReportGenerator.Core.Test.csproj
@@ -4,8 +4,8 @@
net6.0
false
Palmmedia.ReportGenerator.Core.Test
- 5.1.3.0
- 5.1.3.0
+ 5.1.4.0
+ 5.1.4.0
false
diff --git a/src/ReportGenerator.Core/Parser/CoberturaParser.cs b/src/ReportGenerator.Core/Parser/CoberturaParser.cs
index 1ff7446e..db631c58 100644
--- a/src/ReportGenerator.Core/Parser/CoberturaParser.cs
+++ b/src/ReportGenerator.Core/Parser/CoberturaParser.cs
@@ -23,6 +23,11 @@ internal class CoberturaParser : ParserBase
///
private static readonly ILogger Logger = LoggerFactory.GetLogger(typeof(CoberturaParser));
+ ///
+ /// Regex to analyze if a class name represents a generic class.
+ ///
+ private static readonly Regex GenericClassRegex = new Regex("<.*>$", RegexOptions.Compiled);
+
///
/// Regex to analyze if a method name belongs to a lamda expression.
///
@@ -124,7 +129,8 @@ private Assembly ProcessAssembly(XElement[] modules, string assemblyName)
int nestedClassSeparatorIndex = fullname.IndexOf('/');
return nestedClassSeparatorIndex > -1 ? fullname.Substring(0, nestedClassSeparatorIndex) : fullname;
})
- .Where(name => !name.Contains("$") && !name.Contains("<"))
+ .Where(name => !name.Contains("$")
+ && (!name.Contains("<") || GenericClassRegex.IsMatch(name)))
.Distinct()
.Where(c => this.ClassFilter.IsElementIncludedInReport(c))
.OrderBy(name => name)
diff --git a/src/ReportGenerator.Core/ReportGenerator.Core.csproj b/src/ReportGenerator.Core/ReportGenerator.Core.csproj
index 6fca24c7..869016c1 100644
--- a/src/ReportGenerator.Core/ReportGenerator.Core.csproj
+++ b/src/ReportGenerator.Core/ReportGenerator.Core.csproj
@@ -7,8 +7,8 @@
false
true
ReportGenerator.Core
- 5.1.3.0
- 5.1.3.0
+ 5.1.4.0
+ 5.1.4.0
diff --git a/src/ReportGenerator.DotnetCorePluginLoader/ReportGenerator.DotnetCorePluginLoader.csproj b/src/ReportGenerator.DotnetCorePluginLoader/ReportGenerator.DotnetCorePluginLoader.csproj
index 84a13957..22298aa7 100644
--- a/src/ReportGenerator.DotnetCorePluginLoader/ReportGenerator.DotnetCorePluginLoader.csproj
+++ b/src/ReportGenerator.DotnetCorePluginLoader/ReportGenerator.DotnetCorePluginLoader.csproj
@@ -2,8 +2,8 @@
netcoreapp3.1;net5.0;net6.0
ReportGenerator.DotnetCorePluginLoader
- 5.1.3.0
- 5.1.3.0
+ 5.1.4.0
+ 5.1.4.0
diff --git a/src/ReportGenerator.DotnetGlobalTool/ReportGenerator.DotnetGlobalTool.csproj b/src/ReportGenerator.DotnetGlobalTool/ReportGenerator.DotnetGlobalTool.csproj
index 3212c0f1..f5d82d46 100644
--- a/src/ReportGenerator.DotnetGlobalTool/ReportGenerator.DotnetGlobalTool.csproj
+++ b/src/ReportGenerator.DotnetGlobalTool/ReportGenerator.DotnetGlobalTool.csproj
@@ -7,8 +7,8 @@
ReportGenerator
Palmmedia.ReportGenerator
Palmmedia.ReportGenerator.DotnetGlobalTool.Program
- 5.1.3.0
- 5.1.3.0
+ 5.1.4.0
+ 5.1.4.0
diff --git a/src/ReportGenerator.MSBuild/ReportGenerator.MSBuild.csproj b/src/ReportGenerator.MSBuild/ReportGenerator.MSBuild.csproj
index 2c147aa2..8fe99664 100644
--- a/src/ReportGenerator.MSBuild/ReportGenerator.MSBuild.csproj
+++ b/src/ReportGenerator.MSBuild/ReportGenerator.MSBuild.csproj
@@ -5,8 +5,8 @@
Palmmedia.ReportGenerator.MSBuild
false
true
- 5.1.3.0
- 5.1.3.0
+ 5.1.4.0
+ 5.1.4.0
diff --git a/src/build.proj b/src/build.proj
index e9b8899e..6d18fae1 100644
--- a/src/build.proj
+++ b/src/build.proj
@@ -22,7 +22,7 @@
- 5.1.3
+ 5.1.4