🌟

VisualStudioでコードカバレッジ

2023/04/15に公開

はじめに

VisualStudioを使用して開発を行っているが、Professionalなので高度は機能がなく、コードカバレッジも利用できない様なので、無料で何とかしてみた。

環境

Windows11 Pro
VisualStudio2022(64bit) Version 17.5.4

外部ツールの設定

パッケージのインストール

VisualStudioのNugetでパッケージを入れる
Nugetなので、プロジェクト毎に設定が必要かと思うが、一度行えば他プロジェクトでも同様に行える
「ツール」「Nugetパッケージマネージャ」「ソリューションのNugetパッケージの管理」を選択

パッケージ名 Version
OpenCover 4.7.1221
ReportGenerator 5.1.19

ReportGeneratorはコードカバレッジの機能とは関係ないが、結果を非常に見やすく表示してくれるので、入れておいた方が良い。

外部ツールの設定

本当はコンソールからコマンド操作が必要だけど、外部ツールの機能で、簡単に使用できるようにする。

次の作業のために、入れたパッケージのパスを調べておく
デフォルトでは、

%UserProfile%\.nuget\packages

にパッケージ名のフォルダがある。
次の操作でexeの場所が必要だけど、それぞれ以下の通り

パッケージ名 パス
OpenCover \opencover\4.7.1221\tools\OpenCover.Console.exe
ReportGenerator \reportgenerator\5.1.19\tools\net7.0\ReportGenerator.exe

それぞれパスの途中にVer番号のフォルダがあるので、Verが違う場合には書き換えてください。またReportGeneratorは、.NETのVerも最後にあるので、ここでは最新っぽいnet7を選択しています。

VisualStudioのメニューから「ツール」「外部ツール」を選択。開いたウィンドウで「追加」ボタンより、以下の2つを追加していく。

タイトル コマンド 引数
OpenCover 上記のパス -target:"(TargetPath)" -output:"(TargetDir)reports.xml" -register:user
ReportGenerator 上記のパス -reports:"(TargetDir)reports.xml" -reporttypes:HtmlInline; -targetdir:"(TargetDir)"

これでVisualStudioでメニューの「ツール」内に、それぞれのパッケージ名の項目が増えたはずで、準備完了。

コードカバレッジの実施

ここで、コードカバレッジを行いたい自作のプロジェクトを開いて、コードカバレッジの機能を使ってみよう

VisualStudioのメニューから、「ツール」「OpenCover」をクリックする事で、自作プロジェクトが起動します。ここでボタン押したりしていろいろと動作させて下さい。頃合いを見てソフトを終わらせてください。

プロジェクトのフォルダ以降に

\obj\Release\reports.xml(Releaseビルドの場合)

に結果が書かれています。
XMLファイルなんで、見てもわかりません。そこでReportGeneratorの出番です。
ReportGeneratorを使用するには、そのままVisualStudioのメニューから「ツール」「ReportGenera」を選択してください。
そうすると先ほどのxmlファイルと同じフォルダに

index.html

ができていますので、これをブラウザで見てください。

下の方にカバレッジ率が表示されています。それでこいつのすごいのが、Name欄の各クラスをクリックすることで、コードが表示されて、どのコードが実施されて、どのコードが実際されていないかが色付けされています。

Discussion