単体テストのコードカバレッジのレポートを生成する

Visual Studio Enterprise エディションのコードカバレッジの機能を使わずとも、Coverlet を使えば単体テストのコードカバレッジを収集できるし、ReportGenerator を使えば HTML レポートを生成できる。

docs.microsoft.com

PowerShellスクリプトを書いて、コードカバレッジの収集とレポートの生成を自動化してみた。

$dirs = Get-ChildItem -Path . -Recurse -Filter *TestResults*
foreach ($dir in $dirs)
{
    Remove-Item -Path $dir.FullName -Recurse -Force
}

dotnet test --collect:"XPlat Code Coverage"

$files = Get-ChildItem -Path . -Recurse -Filter *coverage.cobertura.xml
foreach ($file in $files)
{
    $reports = ("-reports:" + $file.FullName)
    $targetdir = ("-targetdir:" + $file.Directory.FullName + "\html")
    reportgenerator $reports  $targetdir -reporttypes:HTML
}