Search code examples
code-coveragevisual-studio-2017xunitvs-unit-testing-framework

.net core projects code coverage visual studio 2017


I am using Visual Studio Enterprise 2017 to develop my .net core projects.

My solution also has some unit test projects and I want to view my current Code coverage.

When I clicked Test -> Analyze Code Coverage -> All tests. All my unit tests ran but in Code Coverage Results it only reported code coverage for my unit test projects which doesn't make any sense to me.

Question 1: Do you guys experience the same issue with me? Any solution for this? I also need to set up build definition in VSTS to report code coverage.

enter image description here

Question 2: Also when I right clicked to debug 1 of my unit test. It executes ALL of my unit tests. Is this a bug in VS2017?

Update1: I found this topic: https://github.com/Microsoft/vstest/issues/597


Solution

  • Even with the "fixed" version I had issues (Only able to see code coverage for the test projects, not the actual projects I was testing). To workaround the problem I removed the <DebugType>Full</DebugType> from the test project.

    So, as a summary:

    1. Add package Microsoft.CodeCoverage (1.0.3) into your test project.

    2. Add the <DebugType>Full</DebugType> tag on the .csproj file on the projects we want to see code coverage values (inside <PropertyGroup> as explained on the vstest github link).

    3. Run unit tests.
    4. On the "Test Explorer" select passed unit tests, right click -> "Analyze Code Coverage for Selected Tests".
    5. You should see code coverage for your assemblies.

    My setup (Minimal setup?)

    • xunit (2.3.1)
    • xunit.runner.visualstudio (2.3.1)
    • Microsoft.NET.Test.Sdk (15.3.0)
    • Microsoft.CodeCoverage (1.0.3)
    • Visual Studio Enterprise 2017 (15.4.1)