-
Notifications
You must be signed in to change notification settings - Fork 392
Description
Describe the bug
When running the coverlet nightly builds the generation of results fails when combining multiple test runs using JSON format. Individual runs generate reports successfully. The exception thrown is:
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : Deserialization of types without a parameterless constructor, a singular parameterized constructor, or a parameterized constructor annotated with 'JsonConstructorAttribute' is not supported. Type 'Coverlet.Core.Method'. Path: $['MyProject.Auth.dll']['/datadisks/disk1/work/1/s/src/MyProject.Auth/Utils/AuthExtensions.cs']['MyProject.Auth.Utils.AuthExtensions']['System.Threading.Tasks.Task MyProject.Auth.Utils.AuthExtensions::ClearRolesForUser(MyProject.Auth.Services.IExternalAuthService,System.String,System.Threading.CancellationToken)'] | LineNumber: 4 | BytePositionInLine: 204. [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.ThrowHelper.ThrowNotSupportedException(ReadStack& state, Utf8JsonReader& reader, NotSupportedException ex) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.ThrowHelper.ThrowNotSupportedException_DeserializeNoConstructor(Type type, Utf8JsonReader& reader, ReadStack& state) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.Serialization.JsonDictionaryConverter`3.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, TDictionary& value) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.Serialization.JsonDictionaryConverter`3.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, TDictionary& value) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.Serialization.JsonDictionaryConverter`3.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, TDictionary& value) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.Serialization.JsonDictionaryConverter`3.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, TDictionary& value) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at System.Text.Json.JsonSerializer.Deserialize[TValue](String json, JsonSerializerOptions options) [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at Coverlet.Core.Coverage.GetCoverageResult() in /_/src/coverlet.core/Coverage.cs:line 317 [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
/home/AzDevOps/.nuget/packages/coverlet.msbuild/6.0.1-preview.31.g0db8de77cb/build/coverlet.msbuild.targets(72,5): error : at Coverlet.MSbuild.Tasks.CoverageResultTask.Execute() in /_/src/coverlet.msbuild.tasks/CoverageResultTask.cs:line 87 [/datadisks/disk1/work/1/s/test/MyProject.Distributed.Extensions.Tests/MyProject.Distributed.Extensions.Tests.csproj]
Depending on the order in which I run the projects, the first line of the message will include multiple Type and/or method names
To Reproduce
Run coverlet nightly build (6.0.1-preview.31.g0db8de77cb
) against a project and use json
output format. Then, run coverlet against another project (or even the same one!) with the MergeWith
option.
dotnet test --configuration Release --logger "console" --logger xunit -p:CollectCoverage=true -p:CoverletOutputFormat="json" -p:CoverageRoot="${PWD}/../Coverage" -p:MergeWith="${PWD}/../Coverage/coverage.json"
Expected behavior
Coverlet does not crash
Actual behavior
Coverlet crashes with the above exception
Configuration (please complete the following information):
Please provide more information on your .NET configuration:
* Which coverlet package and version was used? 6.0.1-preview.31.g0db8de77cb
(also crashes on 6.0.1-preview.26.g71c202b19e
)
* Which version of .NET is the code running on? .NET7
but .NET SDK 8.0.0 is installed and active
* What OS and version, and what distro if applicable? Windows 11 x64, Ubuntu 22.04
* What is the architecture (x64, x86, ARM, ARM64)? x64
* Do you know whether it is specific to that configuration? Occurs on at least two configurations mentioned
Additional context
Works fine with package versions 6.0.0