Site icon Being Software Craftsman (DFTBA)

Collect human-readable code coverage report for .net core apps

In this post, I will note down steps to collect human-readable code coverage for .net core/standard apps on the developer machine.

Big Picture of Code coverage collection.

I have created a simple .NET standard class library and .net core test project (xUnit) project here.

Project structure: .NET standard class library and xUnit test project


Prerequisites

You will require the following NuGet packages to be installed on the xUnit tests project (BeingCraftsman.CoverageDemo.Tests).



Steps:

Human readable code coverage report giving insights about class, methods etc…


Getting tired of running all these commands one by one.
Next time, onwards, just combine them with “;” separated and execute.

dotnet test /p:CollectCoverage=true /p:CoverletOutput="./CodeCoverage/" /p:CoverletOutputFormat="opencover"; dotnet reportgenerator "-reports:.\CodeCoverage/coverage.opencover.xml" "-targetdir:.\CodeCoverage\Web"; start .\CodeCoverage\Web\index.htm



Brief description of tools/commands:

dotnet test

The dotnet test command is used to execute unit tests in a given solution. The dotnet test command builds the solution and runs a test host application for each test project in the solution.

More details: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test


coverlet.msbuild

Coverlet is Cross platform code coverage for .NET. How it works.

Coverlet also integrates with the build system to run code coverage after tests. In our case, MSBuild is the build system and hence we are using this package. For other build systems, you would require another package.

More details: https://github.com/coverlet-coverage/coverlet


ReportGenerator

ReportGenerator converts coverage reports generated by OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats.

More details: https://github.com/danielpalme/ReportGenerator


Exit mobile version