【UnitTest】カバレッジを測りたい
Visual Studio 2017までは、UnitTestのカバレッジ計測にAxoCover(AxoCover - Visual Studio Marketplace)を利用していたのですが、2019以降は(そのままでは)利用できなくなってしまいましたので、別の方法を探しました。その備忘録です。
【coverlet.collectorを利用する】
※Visual Studio 2022 Communityで動作を確認しています。
※お試しはNUnitでしたが、xUnit、MSTestにも対応とのことです。
①テストプロジェクトにNuGetからcoverlet.collectorを導入します。
②コマンドプロンプト(VSのターミナルからでもOK)を開き、ソリューションフォルダにカレントディレクトリを移動します。
③コマンドラインで以下のコマンドを実行します。
> dotnet test --collect:"XPlat Code Coverage"
※テストが実行されます。成功後はcoverage.cobertura.xmlが作成されます。
※テスト対象がAnyCPU+32bit優先の場合は、エラーが発生しました。
(Error:MSB4216)
④ReportGeneratorが未導入の場合は、コマンドから導入します。
> dotnet tool install -g dotnet-reportgenerator-globaltool
⑤以下のコマンドでレポートを作成します。
> reportgenerator -reports:"③で作成されたxmlのフルパス" -targetdir:"coveragereport" -reporttypes:html
※上記コマンドの場合は、ソリューションフォルダ内に「coveragereport」フォルダが作成されます。
⑥成功したら出力フォルダ内にindex.htmlがありますので、それで内容が確認できます。
割とお気軽にできますが、コマンドラインなどは絶対に忘れる自信がありましたので、備忘録として残します。
コメント
コメントを投稿