連載:VSTSの単体テスト機能は本当に使えるのか?

第1回 Team Systemのテスト機能の実際

太陽システム株式会社 中西 庸文
Microsoft MVP 2006 - Solutions Architect)
2006/08/09
Page1 Page2 Page3 Page4

コード・カバレッジ

 テスティング・フレームワークは、単体テストを自動化する非常に優れたツールだが、必要なすべてのテストが作成されているかどうかまでは検出してくれない。そこでコード・カバレッジ(網羅度)を計測して、単体テストを実行した結果としてコードのどれだけの部分がテストされたかを判別することが重要になってくる。

 VSTSのコード・テスト・ツールには、実行されたコードのパーセンテージを表示するコード・カバレッジ・ツールが含まれており、単体テストと同様に、開発担当者向けのTE for Developerとテスト担当者向けのTE for Testerの双方から利用できる。

 それでは、先ほどの単体テストを使用して、コード・カバレッジを計測するための方法を説明しよう。

1. テストの実行構成の編集

 最初にコード・カバレッジ計測の対象となるプログラムを指定する。これにはまず、メニュー・バーの[テスト]−[テストの実行構成の編集]−[ローカルテストの実行]を選択する。

テストの実行構成の編集
VS 2005のメニュー・バーの[テスト]−[テストの実行構成の編集]−[ローカルテストの実行]を選択する。

 これにより、次のようなダイアログが開かれる。このダイアログで[コード・カバレッジ]を選択し、カバレッジを計測したいアセンブリにチェックを入れる。本稿の場合は、テスト対象プロジェクトのアセンブリ「UnitTestSample.Core.dll」にチェックを入れた。

カバレッジを計測するアセンブリの選択
[localtestrun.testrunconfig]ダイアログで[コード・カバレッジ]を選択し、カバレッジを計測したいアセンブリにチェックを入れる。

 このダイアログの[名前を付けて保存]ボタンをクリックし、既存の「localtestrun.testrunconfigファイル」(=VS 2005などが利用するテストの実行の構成ファイル)に上書き保存する。

テストの実行構成の保存
設定した内容を.testrunconfigファイル(=テストの実行構成ファイル)に保存する。

2. コード・カバレッジの実行

 以上で、コード・カバレッジ計測の準備は完了だ。メニュー・バーの[デバッグ]−[デバッグなしで開始](または[Ctrl]+[F5]キー)でテストを実行しよう。コード・カバレッジはビルドされたアセンブリに対して実行されるので、[デバッグ開始]ではなく、[デバッグなしで開始]を選択する必要がある。

コード・カバレッジの実行
コード・カバレッジを実行するには、デバッグなしでプログラムを開始する。

3. コード・カバレッジ結果の表示

 プログラムの実行が終了したら、[テスト結果]ウィンドウの右端にある[コード カバレッジ結果の表示]ボタンをクリックする。

コード・カバレッジ結果の表示
[テスト結果]ウィンドウの右端にある[コード カバレッジ結果の表示]ボタンをクリックする。

 これにより、次の画面のような[コード カバレッジの結果]ウィンドウが開いて、カバレッジの結果が表示される。

コード・カバレッジの結果
[コード カバレッジの結果]ウィンドウにカバレッジ結果が表示される。未カバーが0%であるため、すべてのコードがテストされているのが分かる。

 上記の例ではすべてのコードがカバーされているので、試しに単体テストでカバーされないコードを追加してコード・カバレッジを再度実行し、結果を表示してみよう。

 次の画面のように、コード・エディタ上ではコード内で実行された行と実行されていない行が色分け表示されているのが分かるはずだ。また、[コード カバレッジの結果]ウィンドウの項目をダブルクリックすれば、対象のコードへジャンプすることができる。

コードの強調表示
コード・エディタ上ではコード内で実行された行と実行されていない行が色分け表示される。青部分が実行された行、赤部分が実行されていない行を示している。
 

 INDEX
  VSTSの単体テスト機能は本当に使えるのか?
  第1回 Team Systemのテスト機能の実際
    1.自動化された単体テスト(1)
    2.自動化された単体テスト(2)
  3.コード・カバレッジ
    4.TE for Tester特有のテスト・ツール
 
インデックス・ページヘ  「VSTSの単体テスト機能は本当に使えるのか?」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間