【UnitTest】カバレッジを測りたい
Visual Studio 2017までは、UnitTestのカバレッジ計測にAxoCover( AxoCover - Visual Studio Marketplace )を利用していたのですが、2019以降は(そのままでは)利用できなくなってしまいましたので、別の方法を探しました。その備忘録です。 【coverlet.collectorを利用する】 ※Visual Studio 2022 Communityで動作を確認しています。 ※お試しはNUnitでしたが、xUnit、MSTestにも対応とのことです。 詳しくは → 単体テストにコードカバレッジを使用する - .NET | Microsoft Docs ①テストプロジェクトに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がありますので、それで内容が確認できます。 割とお気軽にできますが、コマンドラインなどは絶対に忘れる自信がありましたので、備忘録として残します。