In general you need a tool that instruments your test code and collects coverage information.
This information is typically stored in a XML file (e.g. in Cobertura format).
ReportGenerator uses this file and generates a report in HTML format (other formats are available).
Use the online configuration tool to get started quickly.
For .NET you can use Microsoft CodeCoverage, coverlet or altcover for instrumenting your test code.
After adding the dependencies to your project, you can execute your tests and generate the coverage report.
Add dependencies to your *.csproj
file:
<ItemGroup> <PackageReference Include="coverlet.collector" Version="6.0.2"> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference> <PackageReference Include="ReportGenerator" Version="5.4.1" /> <PackageReference Include="xunit" Version="2.8.1" /> <PackageReference Include="xunit.runner.visualstudio" Version="2.8.1"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference> </ItemGroup>
Execute tests and create coverage report
dotnet test --collect:"XPlat Code Coverage" "%UserProfile%\.nuget\packages\reportgenerator\5.4.1\tools\net8.0\ReportGenerator.exe" -reports:*\TestResults\*\coverage.cobertura.xml -targetdir:coveragereport
For Java you can use JaCoCo for instrumenting your test code. After adding JaCoCo to your project (here with Maven), you can execute your tests and generate the coverage report.
Add dependencies to your pom.xml
file:
<project> <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.6</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <reporting> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <reportSets> <reportSet> <reports> <report>report</report> </reports> </reportSet> </reportSets> </plugin> </plugins> </reporting> </project>
Execute tests and create coverage report
mvn test jacoco:report dotnet tool update dotnet-reportgenerator-globaltool --tool-path tools --version 5.4.1 tools\reportgenerator -reports:target\site\jacoco\jacoco.xml -targetdir:coveragereport -sourcedirs:src\main\java
For NodeJS you can use Istanbul for instrumenting your test code. After installing Istanbul, you can execute your tests and generate the coverage report.
npm i nyc --save-dev nyc --reporter=cobertura mocha dotnet tool update dotnet-reportgenerator-globaltool --tool-path tools --version 5.4.1 tools\reportgenerator -reports:coverage/cobertura-coverage.xml -targetdir:coveragereport