VisualStudioでコードカバレッジ
はじめに
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:" |
ReportGenerator | 上記のパス | -reports:" |
これでVisualStudioでメニューの「ツール」内に、それぞれのパッケージ名の項目が増えたはずで、準備完了。
コードカバレッジの実施
ここで、コードカバレッジを行いたい自作のプロジェクトを開いて、コードカバレッジの機能を使ってみよう
VisualStudioのメニューから、「ツール」「OpenCover」をクリックする事で、自作プロジェクトが起動します。ここでボタン押したりしていろいろと動作させて下さい。頃合いを見てソフトを終わらせてください。
プロジェクトのフォルダ以降に
\obj\Release\reports.xml(Releaseビルドの場合)
に結果が書かれています。
XMLファイルなんで、見てもわかりません。そこでReportGeneratorの出番です。
ReportGeneratorを使用するには、そのままVisualStudioのメニューから「ツール」「ReportGenera」を選択してください。
そうすると先ほどのxmlファイルと同じフォルダに
index.html
ができていますので、これをブラウザで見てください。
下の方にカバレッジ率が表示されています。それでこいつのすごいのが、Name欄の各クラスをクリックすることで、コードが表示されて、どのコードが実施されて、どのコードが実際されていないかが色付けされています。
Discussion