coverlet-coverage / coverlet

Cross platform code coverage for .NET
MIT License
2.98k stars 386 forks source link

coverlet msbuild + ReportGenerator: Empty reports #1501

Closed Schinwinkwinsky closed 11 months ago

Schinwinkwinsky commented 1 year ago

Hi, I'm trying to use coverlet msbuild and ReportGenerator to generate test reports of my solution.

I'm following the documentations at:

My solution csproj is:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="coverlet.collector" Version="6.0.0">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="coverlet.msbuild" Version="6.0.0">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.3" />
    <PackageReference Include="Moq" Version="4.18.4" />
    <PackageReference Include="Shouldly" Version="4.2.1" />
    <PackageReference Include="xunit" Version="2.5.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.5.0">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="ReportGenerator" Version="5.1.23" />
  </ItemGroup>
  <Target Name="GenerateHtmlCoverageReport" AfterTargets="GenerateCoverageResultAfterTest">
    <ReportGenerator
        ReportFiles="@(CoverletReport)" 
        TargetDirectory="./coverage-report"/>
  </Target>

  <ItemGroup>
    <ProjectReference Include="..\..\src\School.WebAPI\School.WebAPI.csproj" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="Controllers\" />
  </ItemGroup>

</Project>

When I run the following command:

dotnet test /p:CollectCoverage=true

I got the results on terminal:

image

And the following files are added to test project. image

I know there's no test yet. I'm still setting the coverlet and ReportGenerator. But notice the result on terminal show all modules (4 assemblies/namespaces) of my solution. But the result report is empty.

image

What am I doing wrong?

My solution is available at: https://github.com/Schinwinkwinsky/School

Schinwinkwinsky commented 1 year ago

I suspect that's because reportgenerator doesn't work with json files. It worked when I used the following command:

dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura

Bertk commented 11 months ago

@Schinwinkwinsky Hi, did you already resolve this issue? Could you please close it or update the current status.