C# のテストを実行して、カバレッジレポートを生成する方法を書いていきます。
※ Windows 端末で動作確認をしています。
前提
今回は、事前に ReportGenerator をグローバルにインストールしています。
dotnet tool install -g dotnet-reportgenerator-globaltool
資源の構成
動作確認用に使った資源の構成は以下の通りです。
Cov/ … ソリューションフォルダ - Cov.Core/ … ライブラリプロジェクト - Cov.Core.Tests/ … テストプロジェクト(xUnit) - Cov.slnx - coverage-exec.bat - coverlet.runsettings
coverage-exec.bat を実行すると、テストとレポート生成を行うようにします。
カバレッジ設定の作成
coverlet.runsettings を以下の内容で作成します。
<?xml version="1.0" encoding="utf-8" ?> <RunSettings> <DataCollectionRunSettings> <DataCollectors> <DataCollector friendlyName="XPlat code coverage"> <Configuration> <Format>cobertura</Format> </Configuration> </DataCollector> </DataCollectors> </DataCollectionRunSettings> </RunSettings>
バッチファイルの作成
coverage-exec.bat を以下の内容で作成します。
@echo off if exist "TestResults" rmdir /s /q "TestResults" if exist "coveragereport" rmdir /s /q "coveragereport" dotnet test Cov.slnx --collect:"XPlat Code Coverage" --settings ".\coverlet.runsettings" --results-directory "TestResults" reportgenerator -reports:"TestResults\**\coverage.cobertura.xml" -targetdir:"coveragereport" -reporttypes:Html
dotnet test の実行後に、reportgenerator を使ってレポートを生成します。
実行・確認
バッチファイルを実行すると、coveragereport フォルダの下にレポートが出力されます。
Cov\coveragereport\index.html
下の画像は、上の HTMLファイルをブラウザで開いたイメージです。
