【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がありますので、それで内容が確認できます。

割とお気軽にできますが、コマンドラインなどは絶対に忘れる自信がありましたので、備忘録として残します。

コメント

このブログの人気の投稿

【C#】ComboBoxのデータソースにディクショナリを設定したい

【C#】いつもLog4netの設定を忘れる

【C#】2つのコンボボックスを使って、コンボボックスソースを切り替えたい