OpenCover code coverage for .Net Core


I know there are many post out there getting code coverage for .dotnetcore. I'm using opencover to address this needs.

In case, you do no want to use opencover and wanted to stick with vs2015 code coverage, you can try to copy Microsoft.VisualStudio.CodeCoverage.Shim.dll from C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Dynamic Code Coverage Tools\coreclr\ and drop it into your project "bin\Debug\netcoreapp1.0" folder.  Please note : you need to be on VS2015 Enterprise to do this. 

To get started, I guess we need to add OpenCover and ReportGenerator for our test projects, as shown in diagram below :-



When nuget packge gets restored, we will have some binaries downloaded to our machine and we going to use this to generate some statistics. I think the biggest issue is to getting those command lines work.

In dotnetcore, we run test project using "dotnet test" (assuming you are in the test project folder - if not please go there)  So we add this on top of OpenCover, as illustrated in command line below :-

C:\Users\jeremy\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe -target:"dotnet.exe" -targetargs:" test ""


There will be huge chunks of information being generated. So we need reportgenerator to help us do some summary.  If you can just run the following command :-


C:\Users\jeremy\.nuget\packages\ReportGenerator\2.4.5\tools\ReportGenerator.exe -reports:opencover_results.xml -targetdir:coverage  

A sample of the report looks like this. Yeap my project is current a mess. :)




Github source to be added soon.


Comments

Popular posts from this blog

The specified initialization vector (IV) does not match the block size for this algorithm