*

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

公開日: : Python, ツール, テスト, 徒然, 自動化, 開発

どもです。

前々回前回と、VisualStudio/C#での単体テストの効率化について書いてきました。
特に前回は、pythonでテスト結果のXMLを解析してHTMLに表示する、という方法を書きました。
今回は、「テストの実行」と「結果をHTMLに変換する」処理を一括で実行するツールを作成したので、それについて記載します。

1.概要図

VisualStudio/C#の単体テストの実行からレポートの生成までの一括実行の処理の流れを、簡単ですが下図に示します。
test_result_of_vs_003_001
簡単ですが流れを解説すると、pythonからVisualStudio付属のツールを用いて単体テストの実施とカバレッジの測定を実施します。
次に、テスト結果とカバレッジを入力に、pythonでHTML形式のレポートを生成します。
生成されたHTMLレポートのページ構成(イメージ)を、下図に示します。
test_result_of_vs_003_002
トップページには、実行したテストの件数と総合的な結果が表示されます。
また、テスト結果の詳細とカバレッジへのリンクも表示されます。
トップページのテスト結果へのリンクを選択すると、単体テスト結果詳細(成功/失敗)のページが表示されます。
トップページのカバレッジへのリンクを選択すると、カバレッジ測定結果のページが表示されます。

2.結果

上記のイメージを実装、実行した結果を下に示します。
まず「/index.html」です。
この画面では、実行したテストの件数と(成功/失敗といった)詳細情報が表示されます。
test_result_of_vs_003_003
各テストの名前をクリックすることで、実行されたテストケースの一覧とそれぞれの結果、および実行した日が表示されます。
test_result_of_vs_003_004
また「Coverage」をクリックすることで、カバレッジの測定結果に遷移します。
今回は、OpenCoverageで生成したカバレッジを表示しています。
test_result_of_vs_003_005

3.設定

さて。
作成したツールの設定について、少し解説します。

3.1.ツールの設定

まず、今回実行した際の設定です。

この通り、XML形式です。
「UnitTest」タグで単体テストで使用する各ツールの設定を行います。
また、各子要素の属性でツールの名前(name)やパス(path)を設定するようにしています。
UnitTestタグの子要素で有効なタグは「Runner」、「Coverage」、および「ReportGenerator」です。
これらの設定を自分の環境に合せて修正してください。
実行するテスト対象は、別ファイルに設定します。
テスト対象を設定したファイルへのパスは、「TestTarget」タグのPath属性で設定します。

3.2.テスト対象の設定

続いて、テスト対象の設定です。
今回のエントリで使用した、テスト対象の設定です。

テスト設定もXML形式です。
「Targets」タグの子要素である「UnitTest」で、実行するテストを設定します。
これは、実行したいテスト毎に作成します。
今回の例では、テストを2つ実行しているので、UnitTestタグを2つ作成しています。
「UnitTest」タグのname属性で、テストを実行する「ファイルの」名前を指定します。
即ち、「Runner」タグで指定したツールに渡すファイルの名前を指定します。
ext属性では、name属性で指定したファイルの拡張子を指定します。
今回の例では、「dll」を設定しています。
path属性には、name属性に指定したファイルの配置場所へのパスを指定します。

4.公開しています

今回作成したツールは、GitHubにて公開しています。
使ってみてください。

5.まとめ

3回にわたって、VisualStudio/C#でのテスト結果とカバレッジ測定の結果を出力する方法を書いてきました。
最終的には、HTML形式による結果の読める化(見える化!?)を実現しました。
これで、テストの実行からレポートの生成までを簡単に、効率的に実行できるようになったかと思います。

ではっ!

関連記事

RasPi_Qt

QtでRaspberryPi/GUI開発(10)-SPI通信をしてみた(その2)

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

記事を読む

cygwin_my_image

Windows10/cygwinの音を消す

どもです。 最近、Windows10/cygwinで作業をする場面がありました。 このcyg

記事を読む

google_test

C言語でEV3開発(6)

どもです。 今回のエントリーは、前回のエントリーの続き、google testでの単体テスト環境に

記事を読む

python

VisualStudioCommunityでのPython開発環境構築

どもです。 最近、VisualStudioでのPython開発を始めました。 その際の環境構築に

記事を読む

no image

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

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

記事を読む

raspberry-pi

ライブラリでRasPiのピンにアクセス(3)-SPIのインターフェース追加(その2)

どもです。 今回のエントリも、前回に引き続き、RaspberryPiのピンをより簡便に使用でき

記事を読む

Arduino_Logo

ホールセンサーの種類と使い方(割込み編)

どもです。 前回に引き続き、今回もホールセンサーについてです。 1.前回からの違い 前回の

記事を読む

think_about_utest

単体テストの効率化を考える(6)-スタブの自動生成ツール

どもです。 「単体テストの効率化について考える」の6回目です。 1回目から5回目まではコチラ

記事を読む

eclipse-juno-logo

C言語でEV3開発(1)

どもです。 2回目の投稿。 本格的な投稿としては、初めての投稿になります。 内容は、LEG

記事を読む

Arduino_Logo

1台のarduinno nanoで割込みとSPIの同時使用

どもです。 先日手に入れたArduino nano(中華)で遊んでいます。 今回、この1台のAr

記事を読む

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="">

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

どもです。 前々回、前回と、VisualStudio/C#での単

think_about_utest
VisualStudioで実行した単体テストの結果の出力(2)-出力ファイルの読める化

どもです。 前回の続きです。 前回は、VisualStud

think_about_utest
VisualStudioで実行した単体テストの結果の出力(1)-ファイルへの出力

どもです。 最近、VisualStudio/C#でよく開発してい

think_about_utest
単体テストの効率化を考える(6)-スタブの自動生成ツール

どもです。 「単体テストの効率化について考える」の6回目です。

think_about_utest
単体テストの効率化を考える(5)-スタブの自動生成への入力

どもです。 「単体テストの効率化について考える」の5回目です。

→もっと見る

PAGE TOP ↑