coverlet-coverage / coverlet

Cross platform code coverage for .NET
MIT License
2.94k stars 385 forks source link

Getting IOException in Coverlet | Intermittent but Frequent Issue #1436

Open PersonalFork opened 1 year ago

PersonalFork commented 1 year ago

Version : "coverlet.collector" Version="3.2.0" "coverlet.msbuild" Version="3.2.0" .NET 6.0.306

Command : dotnet test /p:ParallelizeTestCollections=false /p:Configuration=Release --collect:\"XPlat Code Coverage\" --settings coverage.runsettings --logger trx --no-build

Two Issues :

  1. A total of 1 test files matched the specified pattern. Data collector 'XPlat code coverage' message: [coverlet]Coverlet.Collector.Utilities.CoverletDataCollectorException: CoverletCoverageDataCollector: Failed to get coverage result ---> System.IO.IOException: The process cannot access the file 'C:\Users\jenkins\AppData\Local\Temp\Org.SupportManager.Client.AgentContracts_334da500-e861-41cd-a413-c86342a7bbf2' because it is being used by another process.

  2. A total of 1 test files matched the specified pattern. Data collector 'XPlat code coverage' message: [coverlet]Coverlet.Collector.Utilities.CoverletDataCollectorException: CoverletCoverageDataCollector: Failed to get coverage result ---> System.IO.EndOfStreamException: Unable to read beyond the end of the stream. at System.IO.BinaryReader.InternalRead(Int32 numBytes) at Coverlet.Core.Coverage.CalculateCoverage() in //src/coverlet.core/Coverage.cs:line 414 at Coverlet.Core.Coverage.GetCoverageResult() in //src/coverlet.core/Coverage.cs:line 161 at Coverlet.Collector.DataCollection.CoverageWrapper.GetCoverageResult(Coverage coverage) in //src/coverlet.collector/DataCollection/CoverageWrapper.cs:line 53 at Coverlet.Collector.DataCollection.CoverageManager.GetCoverageResult() in //src/coverlet.collector/DataCollection/CoverageManager.cs:line 92 --- End of inner exception stack trace --- at Coverlet.Collector.DataCollection.CoverageManager.GetCoverageResult() in //src/coverlet.collector/DataCollection/CoverageManager.cs:line 97 at Coverlet.Collector.DataCollection.CoverletCoverageCollector.OnSessionEnd(Object sender, SessionEndEventArgs e) in //src/coverlet.collector/DataCollection/CoverletCoverageCollector.cs:line 161.

Bertk commented 10 months ago

Hi,

please use latest version of coverlet.collector and try again. Use only one coverlet PackageReference in test project.

https://github.com/coverlet-coverage/coverlet/blob/master/README.md#vstest-integration-preferred-due-to-known-issue

<PackageReference Include="coverlet.collector" Version="6.0.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>

Please try additional setting CopyLocalLockFileAssemblies for the first topic (see https://github.com/coverlet-coverage/coverlet/blob/1da3e1c3b19e3d3b91aa3a8ffb93b319489133b2/Documentation/KnownIssues.md#failed-to-resolve-assembly-during-instrumentation)

The second topic is also mentioned in known issues

github-actions[bot] commented 7 months ago

This issue is stale because it has been open for 3 months with no activity.

viceice commented 6 months ago

seeing this too 😕

Data collector 'XPlat code coverage' message: [coverlet]Coverlet.Collector.Utilities.CoverletDataCollectorException: CoverletCoverageDataCollector: Failed to get coverage result
---> System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
  at System.IO.BinaryReader.InternalRead(Int32 numBytes)
  at System.IO.BinaryReader.ReadInt32()
  at Coverlet.Core.Coverage.CalculateCoverage() in /_/src/coverlet.core/Coverage.cs:line 414
  at Coverlet.Core.Coverage.GetCoverageResult() in /_/src/coverlet.core/Coverage.cs:line 161
  at Coverlet.Collector.DataCollection.CoverageWrapper.GetCoverageResult(Coverage coverage) in /_/src/coverlet.collector/DataCollection/CoverageWrapper.cs:line 57
  at Coverlet.Collector.DataCollection.CoverageManager.GetCoverageResult() in /_/src/coverlet.collector/DataCollection/CoverageManager.cs:line 95
  --- End of inner exception stack trace ---
  at Coverlet.Collector.DataCollection.CoverageManager.GetCoverageResult() in /_/src/coverlet.collector/DataCollection/CoverageManager.cs:line 100
  at Coverlet.Collector.DataCollection.CoverageManager.GetCoverageReports() in /_/src/coverlet.collector/DataCollection/CoverageManager.cs:line 83
  at Coverlet.Collector.DataCollection.CoverletCoverageCollector.OnSessionEnd(Object sender, SessionEndEventArgs e) in /_/src/coverlet.collector/DataCollection/CoverletCoverageCollector.cs:line 164.

Using coverlet.collector v6.0.0

bruno-garcia commented 6 months ago

We removed coverlet in 2021 because of this issue

Enough time had passed we decided to give it a try

Even within the PR adding coverlet we ended up hitting this issue again:

github-actions[bot] commented 3 months ago

This issue is stale because it has been open for 3 months with no activity.