*

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に対応することを願います。

関連記事

sensor_graph_visualization_002_eye_catch

センサーの値を見える化する(2)-温湿度センサ:DHT11の値の見える化

どもです。 前回に引き続き、今回もセンサ値の見える化です。 前回のエントリの最後に、「見

記事を読む

GitHub

Windowsでのカバレッジ測定-OpenCppCoverageを使ってみた(1)

どもです。 ここ最近、Windows上で開発を行っています。 その際に、当然単体テストを行うので

記事を読む

think_about_utest

VisualStudioで実行した単体テストの結果の出力(3)-テスト実行からレポート生成までをツールで自動化

どもです。 前々回、前回と、VisualStudio/C#での単体テストの効率化について書いて

記事を読む

raspberry-pi

QtでRaspberryPi/GUI開発(9)-SPI通信をしてみた

どもです。 えー。 「Qtで…」とか書いておきながら、今回はQtは出てきません。 今回のエ

記事を読む

no image

C言語でEV3開発(4)

どもです。 今回のエントリーは、前回のエントリー内容/EclipseでEV3の実行ファイルをビルド

記事を読む

iot_at_home_eye_catch

IoT開発(11)
ESP-WROOM-02を長時間駆動させた

どもです。この記事は、下記の記事の続き、「測定可能な期間」の結果発表です。IoT開発(5) ESP-

記事を読む

think_about_utest

単体テストの効率化を考える(1)-はじめに

どもです。 突然ですが、今回から数回にわたって「単体テストの効率化」についてのエントリになりま

記事を読む

cygwin_my_image

cygwinでstartコマンド

どもです。 このエントリでは、cygwinでWindows/コマンドプロンプトの「start」

記事を読む

ADT7310_DHT11_eye_catch

温度センサの出力値の比較

どもです。 今回は、センサーの性能、測定結果を比較してみたので、それについて書きます。 1.

記事を読む

source_trail_eye_catch

Sourcetrailを試してみました(2)-Eclipseと連携

どもです。 前回のエントリで、ソースコードを解析するオープンソース「Sourcetrail」を紹介

記事を読む

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#/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」

arduino_relay_switch_002_ae_g5v_drv_eye_catch
Arduinoでリレースイッチ(2)-AE-G5V-DRV

どもです。 前回の記事では、「フォトカプラリレー」を使用したLチ

→もっと見る

PAGE TOP ↑