Code Coverage in .Net Core 2.0

samdinesh picture samdinesh · Sep 5, 2017 · Viewed 7.5k times · Source

How can I generate code coverage in .Net Core 2.0?

I tried the following:

"TestPlatform\vstest.console.exe" --collect:"Code Coverage"

But I got this error message:

Data collector 'Code Coverage' message: Cannot find CodeCoverage.exe.

I tried dotCover latest version 2017.2 which I am able to get the coverage on the local machine, but when the same is run in the TFS Build no coverage information is generated.

I am not sure when NetCore Test task in TFS will get support for code coverage.

How can I publish the results from DotCover in TFS also, to use DotCover Commandline to generate the Coverage for .Net Core?

Answer

equiman picture equiman · Jun 16, 2018

Coverlet is a cross platform code coverage available as NuGet package.

Just add it on your test project:

dotnet add package coverlet.msbuild

And run it altogether with dotnet test command as parameter:

dotnet test /p:CollectCoverage=true

Supported Formats:

  • json (default)
  • lcov
  • opencover
  • cobertura

I made more detailed implementation about it here: .Net Core Unit Test and Code Coverage with Visual Studio Code