coverlet: Upgrading coverlet.msbuild to 2.6.2 fails builds on travis that worked with earlier versions

I was trying to upgrade the coverlet.msbuild on a few of my projects, only to find out that the new version fails with a type conversion exception.

The builds that fail when trying to generate the coverage report are all running on travis (both linux and osx, and both is failing) with .NET Core 2.1.603 installed.

Here is the exception/stack trace that gets outputted to the console

Exception/Stack trace
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error : Could not convert string '{"Line":19,"Ordinal":0}' to dictionary key type 'Coverlet.Core.Instrumentation.BranchKey'. Create a TypeConverter to convert from the string to the key type object. Path 'Results[0].Documents['/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov/CodecovRunner.cs'].Branches.{"Line":19,"Ordinal":0}', line 1, position 14191. [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Newtonsoft.Json.JsonSerializer.Deserialize[T](JsonReader reader) [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Coverlet.Core.CoveragePrepareResult.Deserialize(Stream serializedInstrumentState) in C:\Users\toni\Workspace\coverlet\src\coverlet.core\CoveragePrepareResult.cs:line 21 [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]
/home/travis/.nuget/packages/coverlet.msbuild/2.6.2/build/coverlet.msbuild.targets(41,5): error :    at Coverlet.MSbuild.Tasks.CoverageResultTask.Execute() in C:\Users\toni\Workspace\coverlet\src\coverlet.msbuild.tasks\CoverageResultTask.cs:line 83 [/home/travis/build/cake-contrib/Cake.Codecov/Source/Cake.Codecov.Tests/Cake.Codecov.Tests.csproj]

And the links I can share to the failing builds: https://travis-ci.org/cake-contrib/Cake.Codecov/builds/542339897 https://travis-ci.org/cake-contrib/Cake.Transifex/builds/542340613 https://travis-ci.org/cake-contrib/Cake.Warp/builds/542341393

THe same projects are able to run coverlet.msbuild on appveyor, which leads me to believe there may have been a change in the latest version that would require to update the .NET Core SDK version (but I have not verified this yet).

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 1
  • Comments: 29 (1 by maintainers)

Most upvoted comments

@JSkimming as soon as @tonerdo do review/merge you’ll can test with nightly build, thank’s for help!

Fair, sorry for the inconvenience 😦 I’ll work on a fix asap.

No worries, I would probably never have noticed this if it weren’t for dependabot (I am lousy with updating dependencies manually, so it is good to rely on bots).

TL;DR

PR #458 has fixed the issue I was experiencing.

Summary

I’ve just taken the nightly build in this PR JSkimming/Castle.Core.AsyncInterceptor#72 and all the tests now pass where previously I had this issue.

Nice work @MarcoRossignoli 👍

Working, @MarcoRossignoli, thanks! “Your first commit” on Neo Project…aehuahuea

@MarcoRossignoli I could do that of course, but I believe I rather will skip the 2.6.2 version, and wait for the next one instead.

I would need to implement my own custom logic if I change to the dotnet tool, which I don’t really have the time to do right now (currently using Cake.Coverlet during build, but it only supports debug builds when running the dotnet tool).

Ok I’ll try to repro locally

yes, it is open source: https://github.com/cake-contrib/Cake.Codecov

The updating of coverlet.msbuild is only in the following PR though: https://github.com/cake-contrib/Cake.Codecov/pull/43

@MarcoRossignoli I didn’t have any existing references for Newtonsoft.Json, so there is no additional references to update.

$ dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   2.1.603
 Commit:    ae71c68742
Runtime Environment:
 OS Name:     ubuntu
 OS Version:  16.04
 OS Platform: Linux
 RID:         ubuntu.16.04-x64
 Base Path:   /usr/share/dotnet/sdk/2.1.603/
Host (useful for support):
  Version: 2.1.11
  Commit:  d6a5616240
.NET Core SDKs installed:
  2.1.603 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.11 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.11 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.11 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download