投稿

2022の投稿を表示しています

【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がありますので、それで内容が確認できます。 割とお気軽にできますが、コマンドラインなどは絶対に忘れる自信がありましたので、備忘録として残します。