Cross platform code coverage for .NET
Fixed
-Could not write lines to file CoverletSourceRootsMapping - in use by another process https://github.com/coverlet-coverage/coverlet/issues/1155
-Incorrect coverage for methods returning IAsyncEnumerable in generic classes https://github.com/coverlet-coverage/coverlet/issues/1383
-Wrong branch coverage for async methods .NET Standard 1.x https://github.com/coverlet-coverage/coverlet/issues/1376
-Empty path exception in visual basic projects https://github.com/coverlet-coverage/coverlet/issues/775
-Align published nuget package version to github release version https://github.com/coverlet-coverage/coverlet/issues/1413
-Sync nuget and github release versions https://github.com/coverlet-coverage/coverlet/issues/1122
Improvements -Migration of the project to .NET 6.0 https://github.com/coverlet-coverage/coverlet/pull/1473
Breaking changes New parameter ExcludeAssembliesWithoutSources to control automatic assembly exclusion https://github.com/coverlet-coverage/coverlet/issues/1164. The parameter InstrumentModulesWithoutLocalSources has been removed. since it can be handled by setting ExcludeAssembliesWithoutSources to None. The default heuristics for determining whether to instrument an assembly has been changed. In previous versions any missing source file was taken as a signal that it was a third-party project that shouldn't be instrumented, with exceptions for some common file name patterns for source generators. Now only assemblies where no source files at all can be found are excluded from instrumentation, and the code for detecting source generator files have been removed. To get back to the behaviour that at least one missing file is sufficient to exclude an assembly, set ExcludeAssembliesWithoutSources to MissingAny, or use assembly exclusion filters for more fine-grained control.
-Fix TypeLoadException when referencing Microsoft.Extensions.DependencyInjection v6.0.1 #1390
-Source Link for code generators fails #1322
-Await foreach has wrong branch coverage when method is generic #1210
-ExcludeFromCodeCoverage attribute on local functions ignores lambda expression #1302
-Added InstrumentModulesWithoutLocalSources setting #1360 by @TFTomSun
Fixed -Fix wrong branch coverage with EnumeratorCancellation attribute #1275 -Fix negative coverage exceeding int.MaxValue #1266 -Fix summary output format for culture de-DE #1263 -Fix branch coverage issue for finally block with await #1233 -Fix threshold doesn't work when coverage empty #1205 -Fix branch coverage issue for il switch #1177 -Fix branch coverage with using statement and several awaits#1176 -Fix CopyCoverletDataCollectorFiles to avoid to override user dlls for dotnet publish scenario #1243
Improvements -Improve logging in case of exception inside static ctor of NetstandardAwareAssemblyResolver #1230 -When collecting open the hitfile with read access #1214 by https://github.com/JamesWTruher -Add CompilerGenerated attribute to the tracker #1229
Fixed -Fix branch coverage for targetframework net472 #1167 -Fix F# projects with unkown source #1145 -Fix SkipAutoProps for inline assigned properties #1139 -Fix partially covered throw statement #1144 -Fix coverage threshold not failing when no coverage #1115 -Fix partially covered await foreach statement #1107 by https://github.com/alexthornton1 -Fix System.MissingMethodException(TryGetIntArgFromDict) #1101 -Fix ExcludeFromCodeCoverage on props #1114 -Fix incorrect branch coverage with await using #1111 by https://github.com/alexthornton1
Added -Support deterministic reports #1113 -Specifying threshold level for each threshold type #1123 by https://github.com/pbmiguel
Improvements -Implementation of Npath complexity for the OpenCover reports #1058 by https://github.com/benjaminZale
Fixed -Fix code coverage stops working if assembly contains source generators generated file #1091
Fixed -Fix multi-line lambda coverage regression #1060 -Opt-in reachability helper to mitigate resolution issue #1061
Fixed
-Fix severe loss in coverage #1043 by https://github.com/daveMueller