C# - Kodtäckning
Kodtäckning (Code coverage) är bra för att säkerställa att koden är väl testad och fungerar som förväntat. Det hjälper till att förbättra kodkvaliteten, underlätta underhåll och refaktorisering. Ett bra verktyg är dotnet-reportgenerator.
Installera .NET reportgenerator
Section titled “Installera .NET reportgenerator”För att kolla kodtäckning behöver vi installera ett verktyg som heter ReportGenerator.
dotnet tool install -g dotnet-reportgenerator-globaltoolreportgenerator -help // verifiera installationenGenerera en kodtäckningsrapport
Section titled “Generera en kodtäckningsrapport”Vi kör om testerna och genererar formatet med flaggan --collect:"XPlat Code Coverage". Under TestResultsskapas en katalog som kan heta c8e05096-1936-4477-a60f-8e6bab7d64e8 eller något liknande och där ligger de filer som ReportGenerator kan läsa. Katalognamnet c8e05096-1936-4477-a60f-8e6bab7d64e8 skapas automatiskt med ett unikt id för att undvika konflikter mellan körningar.
dotnet test --collect:"XPlat Code Coverage"Generera en HTML-rapport
Section titled “Generera en HTML-rapport”Peka ut filen coverage.cobertura.xml när rapporten ska genereras. Den ligger under MyBank2.Tests/TestResults/c8e05096-1936-4477-a60f-8e6bab7d64e8/coverage.cobertura.xml. Byt ut c8e05096-1936-4477-a60f-8e6bab7d64e8 mot rätt katalognamn i TestResults (se i katalogen TestResults vilket det är).
reportgenerator "-reports:./TestResults/c8e05096-1936-4477-a60f-8e6bab7d64e8/coverage.cobertura.xml" "-targetdir:coverageReport" "-reporttypes:Html"Under TestResultsskapas en katalog som kan heta c8e05096-1936-4477-a60f-8e6bab7d64e8 för varje gång vi genererar nytt underlag till ReportGenerator. Vi får spara den i ett annat namn om vi vill att det ska bli mer lättläst. Ibland är det bra att spara de gamla katalogerna för jämförelse men ibland är det bra att rensa.
Tips För att det ska gå enklare gör vi så här:
-
Kör
dotnet test --collect:"XPlat Code Coverage" -
Byt namn på katalogen som skapas till
latest
Om det finns en gammal latest katalog rensar vi bort den först eller byter namn på den om vi vill spara den. -
Kör igång reportgeneratorn med latest istället.
reportgenerator "-reports:./TestResults/latest/coverage.cobertura.xml" "-targetdir:coverageReport" "-reporttypes:Html"
Titta på HTML-rapporten
Section titled “Titta på HTML-rapporten”Titta på rapporten genom att öppna filen index.html som ligger under katalogen coverageReport i katalogen MyBank2.Tests i projektet med Filhanteraren (File Explorer/Finder) eller liknande.
Sammanfattning
Section titled “Sammanfattning”Nu har vi tittat på hur vi kan kolla testtäckningen på våra klasser i C#.
Titta på rapporten genom att öppna filen index.html som ligger under katalogen coverageReport i katalogen MyBank2.Tests i projektet med Filhanteraren (File Explorer/Finder) eller liknande.
Koden för Testing/MyBank2 laddar vi ned det med task download-code -- kmom05/Testing/MyBank2 och koden för Testing/MyBank2.Tests laddar vi ned det med task download-code -- kmom05/Testing/MyBank2.Tests. De båda projekten hamnar då i katalogen kmom05/Testing/codeExamples/. Vi öppnar den nedladdade rapporten genom att klicka på kmom05/Testing/codeExamples/MyBank2.Tests/index.html i filhanteraren.