Skip to content

Commit efa7902

Browse files
committed
fix opencover
1 parent 6a6fce2 commit efa7902

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

SharedProject/Core/OpenCover/OpenCoverExeArgumentsProvider.cs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,12 @@ internal class OpenCoverExeArgumentsProvider : IOpenCoverExeArgumentsProvider
2525
private enum Delimiter { Semicolon, Space}
2626
private void AddFilter(ICoverageProject project, List<string> opencoverSettings)
2727
{
28-
var includeFilters = GetExcludesOrIncludes(project.Settings.Include, project.IncludedReferencedProjects,true);
28+
var includedModules = project.IncludedReferencedProjects.ToList();
29+
if(project.Settings.IncludeTestAssembly)
30+
{
31+
includedModules.Add(project.ProjectName);
32+
}
33+
var includeFilters = GetExcludesOrIncludes(project.Settings.Include, includedModules, true);
2934
var excludeFilters = GetExcludesOrIncludes(project.Settings.Exclude, project.ExcludedReferencedProjects,false);
3035
AddIncludeAllIfExcludingWithoutIncludes();
3136
var filters = includeFilters.Concat(excludeFilters).ToList();
@@ -39,25 +44,26 @@ void AddIncludeAllIfExcludingWithoutIncludes()
3944
}
4045
}
4146

42-
List<string> GetExcludesOrIncludes(string[] excludesOrIncludes,List<string> referencedExcludesOrIncludes, bool isInclude)
47+
List<string> GetExcludesOrIncludes(
48+
IEnumerable<string> excludesOrIncludes,IEnumerable<string> moduleExcludesOrIncludes, bool isInclude)
4349
{
4450
var excludeOrIncludeFilters = new List<string>();
4551
var prefix = IncludeSymbol(isInclude);
46-
excludesOrIncludes = SanitizeExcludesOrIncludes(excludesOrIncludes).ToArray();
52+
var sanitizedExcludesOrIncludes = SanitizeExcludesOrIncludes(excludesOrIncludes);
4753

48-
foreach (var value in excludesOrIncludes)
54+
foreach (var value in sanitizedExcludesOrIncludes)
4955
{
5056
excludeOrIncludeFilters.Add($@"{prefix}{value}");
5157
}
5258

53-
foreach (var includedReferencedProject in referencedExcludesOrIncludes)
59+
foreach (var moduleExcludeOrInclude in moduleExcludesOrIncludes)
5460
{
55-
excludeOrIncludeFilters.Add(IncludeOrExclude(isInclude, includedReferencedProject));
61+
excludeOrIncludeFilters.Add(IncludeOrExcludeModule(isInclude, moduleExcludeOrInclude));
5662
}
5763
return excludeOrIncludeFilters.Distinct().ToList();
5864
}
5965

60-
string IncludeOrExclude(bool include,string moduleFilter,string classFilter = "*")
66+
string IncludeOrExcludeModule(bool include,string moduleFilter,string classFilter = "*")
6167
{
6268
var filter = IncludeSymbol(include);
6369
return $"{filter}[{moduleFilter}]{classFilter}";
@@ -66,7 +72,7 @@ string IncludeOrExclude(bool include,string moduleFilter,string classFilter = "*
6672
string IncludeSymbol(bool include) => include ? "+" : "-";
6773
}
6874

69-
private IEnumerable<string> SanitizeExcludesOrIncludes(string[] excludesOrIncludes)
75+
private IEnumerable<string> SanitizeExcludesOrIncludes(IEnumerable<string> excludesOrIncludes)
7076
{
7177
return (excludesOrIncludes ?? new string[0])
7278
.Where(x => x != null)
@@ -170,8 +176,6 @@ public List<string> Provide(ICoverageProject project,string msTestPlatformExePat
170176
{
171177
var opencoverSettings = new List<string>();
172178
AddTargetAndTargetArgs(project, opencoverSettings, msTestPlatformExePath);
173-
//opencoverSettings.Add(CommandLineArguments.AddQuotes($"-target:{msTestPlatformExePath}"));
174-
//opencoverSettings.Add(GetTargetArgs(project));
175179

176180
opencoverSettings.Add(CommandLineArguments.AddQuotes($"-output:{project.CoverageOutputFile}"));
177181

0 commit comments

Comments
 (0)