Reputation: 639
I am trying to generate code coverage report using vstest.console.exe. I am also using .runsettings file and passing it as a parameter.
Whatever I am trying to do, it generates a coverage report for only moq.dll.
I am sharing below the full text of command parameters I am running and also content of .runsettings file. Any idea, where am I doing something wrong?
Command:
vstest.console.exe "C:\Xyz.Tests\bin\Debug\netcoreapp2.0\Xyz.Tests.dll" /InIsolation /EnableCodeCoverage /settings:CodeCoverage.runsettings
CodeCoverage.runsettings file content:
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" enabled="false">
<Configuration>
<CodeCoverage>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
Image of generated code coverage report:
Upvotes: 6
Views: 1985
Reputation: 120
I faced the same behavior, but fortunately I found out a solution:
Code coverage enabled
flag--collect:"Code Coverage"
in Other console optionsAdd <DebugType>full</DebugType>
in <PropertyGroup>
section
Add <ModulePath>.*moq.dll</ModulePath>
in <ModulePaths> -> <Exclude>
section of .runsettings file
Here is my .runsettings
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<RunConfiguration>
<MaxCpuCount>0</MaxCpuCount>
</RunConfiguration>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Configuration>
<CodeCoverage>
<!-- Match assembly file paths: -->
<ModulePaths>
<Include>
<ModulePath>.*\.dll$</ModulePath>
<ModulePath>.*\.exe$</ModulePath>
</Include>
<Exclude>
<ModulePath>.*moq.dll</ModulePath>
<ModulePath>.*CPPUnitTestFramework.*</ModulePath>
<ModulePath>.*TestAdapter.*</ModulePath>
</Exclude>
</ModulePaths>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
And please, check out https://developercommunity.visualstudio.com/content/problem/92905/net-core-unit-testing-code-coverage.html link
Upvotes: 3