OpenCover / opencover

A code coverage tool for .NET 2 and above (WINDOWS OS only), support for 32 and 64 processes with both branch and sequence points
https://blog.many-monkeys.com
Other
1.31k stars 248 forks source link

opencover not calculating code coverage for actual referenced dll/assembly #958

Closed AnandJillawar closed 3 years ago

AnandJillawar commented 4 years ago

Please provide the following information when submitting an issue.

Where appropriate replace the [ ] with a [X]

My Framework

My Environment

I have already...

My issue is related to (check only those which apply):

no coverage being recorded

Expected Behavior

opencover should calculate code coverage for actual referenced dll/assembly (Project Reference .csproj)

Actual Behavior

opencover not calculating code coverage for actual referenced dll/assembly rather showing code coverage for test.dll

Steps to reproduce the problem:

C:\POC\CodeCoverage\OpenCover.4.7.922\tools\OpenCover.Console.exe -register:user -mergebyhash -target:"C:\POC\CodeCoverage\xunit.runner.console.2.3.1\tools\net452\xunit.console.exe" -targetargs:"C:\POC\CodeCoverage.POC\CodeCoverage.POC.Test\bin\Debug\CodeCoverage.POC.Test.dll C:\POC\CodeCoverage.POC\CodeCoverage.POC.OtherTest\bin\Debug\CodeCoverage.POC.OtherTest.dll" -output:"C:\POC\CodeCoverage\CoverageXML\CoverageReport.xml" -filter:"+[] -[xunit.]"

C:\POC\CodeCoverage\ReportGenerator.4.4.7\tools\net47\ReportGenerator.exe "-reports:C:\POC\CodeCoverage\CoverageXML\CoverageReport.xml" "-targetdir:C:\POC\CodeCoverage\Report"

CoverageReport.xml says opencover skipped due to missing pdb for dll for which I want code coverage to be calculated.

 <Module skippedDueTo="MissingPdb" hash="DC-08-91-78-6F-25-E3-39-29-79-8E-45-50-26-43-1D-42-34-F0-04">
      <ModulePath>C:\Users\xxxx.xxxx\AppData\Local\Temp\1\b3716ba3-c380-43e6-8821-3000d12eb1a3\b3716ba3-c380-43e6-8821-3000d12eb1a3\assembly\dl3\3b8b5fea\eb1f6db5_f081d601\Actual.dll</ModulePath>
      <ModuleTime>2020-09-03T12:58:05.2948055Z</ModuleTime>
      <ModuleName>Actual</ModuleName>
      <Classes />
    </Module>

Why it is finding Actual.dll pdb files at C:\Users\xxxx.xxxx\AppData\Local\Temp ?? I am executing above commands from root folder of Actual.dll

sawilde commented 3 years ago

MissingPdb could mean the PDB is missing or that it does not understand the PDB format

OpenCover looks for the PDB file at the same location it finds the .dll it is being asked to instrument - try the searchdirs option to add alternate locations