*

Windowsでのカバレッジ測定-OpenCoverageを使ってみた

公開日: : C#, 開発

どもです。
以前、OpenCppCoverageを使用してWindows上でカバレッジ測定する方法のエントリを書きました。
詳細は、下記のエントリを参照して下さい。
Windowsでのカバレッジ測定-OpenCppCoverageを使ってみた(1)
Windowsでのカバレッジ測定-OpenCppCoverageを使ってみた(2)
ところでこのツールと同じようなツールで、”OpenCoverage”というツールがあります。
これは、.NETのアプリケーションのカバレッジを測定するツールです。
今回のエントリでは、このOpenCoverageについて書きます。

0.作業環境

今回の開発環境は、下記の通りです。

項目スペック
OSWindows10 Pro(ver.1903)
CPUi7-8700
開発環境VisualStuioCommunity2019
Version 16.5.1
.NET Framework4.8.03752
メモリ16GB

1.インストール

OpenCoverageは、VisualStudioのNuGetから取得します。
NuGetパッケージ管理画面において、「OpenCover」と入力します。
その中の「OpenCover」を選択して、インストールします。
OpenCoverage_001
また、カバレッジのレポートを測定する「ReportGenerator」というツールも、同時にインストールしておきます。
コチラも、NuGetで取得ができます。
OpenCoverage_002

2.テストサンプル

今回は、以下のようなクラス/メソッドを対象にした単体テストを例にします。
なお、言語にはC#を選択しています。

2.1.テスト対象の関数

2.2.テストコード

また、これをテストするコードとして、以下のテストコードを適用します。

(内容は、ま、テキトーです。)

3.OpenCoverの実行

OpenCoverは、VisualStudio上からは実行できません(でした)。
なので、コマンドライン上から実行します。
しかしながら、OpenCoverに設定する項目が多いので、下記のようなbatファイルを用意します。

ここでは、OpenCover.ConsoleがOpenCoverの実行ファイルです。
OpenCoverでは、レポート作成の際に一度テストを実行します。
そのため、作成したテストを実行する方法を指定する必要があります。
VisualStudioで作成したテスト(DLL)は、「vstest.console.exe」を使用してコマンドラインから実行します。
なお、「MSTest.exe」ではテストを実行できません。

4.レポートの生成

OpenCoverでは、カバレッジはXML形式で出力されます。
なので、これをHTML形式に変換します。
変換には、ReportGeneratorを使用します。
使い方は、下記の通りです。

これで、HTML形式のレポートが生成されます。
上記のコマンド例では、htmlという名前のディレクトリに生成されます。
このディレクトリのindex.htmlを表示することで、レポートが観られます。
実際のレポートは、こんなカンジです。
OpenCoverage_003
ラインカバレッジ部分は、こんなカンジ。
OpenCoverage_004

5.まとめ

今回は、OpenCoverというカバレッジを測定するツールについて記載しました。
OpenCoverを用いることで、これまで有償でしかできなかったC#でのカバレジ測定が可能になります。

OpenCoverは、VisualStuidで取得できる割に、別途コマンドラインで実行する必要があります。
VisualStudioの中で使うことができません。
そのため、使いにくさは否めません。
そのあたりは、今後の対応に期待です。

ではっ!

ex

OpenCoverに加えて、OpenCoverUIというツールがVisualStudioのMarketplaceで公開されています。
しかし、こちらはVisualStudio2015までしか対応していません。
このツールが、早いとこ新しいVisualStudioに対応することを願います。

関連記事

RasPi_Qt

QtでRaspberryPi/GUI開発(12)-gpioの状態をGUIに反映する

どもです。 今回は、gpioピンの状態(HIGH/LOW)の変化を画面上に即座に反映する方法につい

記事を読む

Arduino_Logo

ホールセンサーの種類と使い方

どもです。 今回のエントリは、表題にある「ホールセンサー」についてです。 1.「ホールセンサ

記事を読む

sensor_graph_visualization_eye_catch

センサーの値を見える化する(1)-温度センサ:MDK001の値の見える化

どもです。 ここしばらく、PCツールとかの話が多かったのですが、久方ぶりに組み込み開発のネタで

記事を読む

no image

Windows-QtCreatorでのデバッグ

どもです。 更新の間隔が空いてしまいました。 久しぶりの更新です。 最近、Qtを触り始めま

記事を読む

raspberry-pi

libpigpioでのRaspberryPi3とArduinoのSPI通信

どもです。 今回は、libpigpioを使用してRaspberryPi3とArduinoでSPI通

記事を読む

iot_raspberrypi_gateway_001_eye_catch

IoT開発(6)
RaspberryPiをIoTゲートウェイにする(I)
VM上に開発環境を構築

どもです。前回までの記事で、ESP-WROOM-02/ESP32を電池で駆動して、センサーのデータを

記事を読む

raspberry-pi

ライブラリでRasPiのピンにアクセス(3)-割り込み対応

どもです。 少し間が空いてしまいましたが、RaspberryPiのピンをより簡便に使用するため

記事を読む

MindStormControl_SprachScreen

EV3開発サポートツール(1)-C#のユーザーコントロール開発

どもです。 突然ですが、今回はC#に関するエントリになります。 具体的には、C#/WPFで、独自

記事を読む

no image

QtでRaspberryPi/GUI開発(3):ためしに時計を作ってみた(其の参)-StyleSheetの適用

どもです。 前回のエントリーでは、グループ化されたボタンに対するイベントハンドラについて書きました

記事を読む

eclipse_oxygen

Linux/EclipseでRaspberryPiのクロス環境を構築してみた…がっ!

どもです。 前回のエントリでは、WindowsにRaspberryPi3のクロスコンパイル環境の構

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

c_sharp_eye_catch
セルに「取り消し線」が設定されているかを判定してみた

どもです。 前回、前々回と、エクセルのセル内の文字列から、「取り

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」の削除を簡単にしてみた

どもです。 前回、C#/OpenXmlを用いて、エクセルのセル内

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」を削除してみた

どもです。 今回は、C#/OpenXmlの組み合わせで、エクセル

c_sharp_eye_catch
C#でバッファの内容を表示する処理を実装してみた-
データ型に従って動的に書式を設定する

どもです。 最近、C#でバッファ/配列の値をコンソールに表示した

arduino_relay_switch_003_self_preservation_circuit_eye_catch
Arduinoでリレースイッチ(3)-自己保存回路

どもです。 前回の記事で、リレースイッチ「AE-G5V-DRV」

→もっと見る

PAGE TOP ↑