Visual StudioのIDE内で、サードパーティ製のユニットテストフレームワーク「NUnit」によるユニットテストを実行する方法を解説する。
対象:Visual Studio 2012以降
ただしExpressエディションを除く(Communityエディションは対応)
Visual Studioには、MSTestというユニットテストのフレームワークが標準で搭載されている*1。しかし、標準ではない(例えばNUnitといった)ユニットテストフレームワークに慣れ親しんでいるので、そちらを使いたいこともあるだろう。そのような場合には、Visual Studioとは別にそのフレームワークのテストランナー(=ユニットテスト実行用のプログラム)も立ち上げて、二つのウィンドウ間を行ったりきたりすることになる。MSTestなら、Visual Studio組み込みのテストエクスプローラーを使って、一つのIDE上でコーディングとユニットテストが実行できるのだ。サードパーティ製のユニットテストフレームワークでも同様にできないだろうか? フレームワークによっては、それを可能にする「テストアダプター」を提供しているものもある。本稿では、無償のVisual Studio Community 2013を使い*2、テストエクスプローラーでNUnitのテストを実行する方法を紹介する。
*1 MSTestを使ったユニットテストの方法は、MSDN「単体テストの基本」をご覧いただきたい。なお、ここでいう「ユニット(=単体)」とはメソッドないしはクラスのことであって、「機能単体」や「画面単体」の意味ではない。
*2 Visual Studio 2012(Expressエディションを除く)でも、手順はほぼ同様である。
本稿では、サードパーティ製のユニットテストフレームワークとしてNUnitを取り上げる*3。Visual Studio 2010までは、次の画像のようにVisual Studioとは別にNUnitのテストランナーを立ち上げて、二つのウィンドウを切り替えながら操作するしかなかった。Visual Studioでコードを書いてビルドし、NUnitのテストランナーに切り替えてテスト結果を見て、再びVisual Studioでコーディング……という手順を繰り返していたのである。
*3 本稿ではNUnitの使い方は解説しない。少々古い記事だが「.NET Tools〜NUnit入門 Test Firstのススメ [NUnit 2.0対応版]」をご覧いただきたい。基本的な使い方は変わっていない。
なお、テストアダプターが提供されているユニットテストフレームワークはNUnitだけではない。Visual Studioの拡張機能をインストールするダイアログで「test adapter」を検索すれば、「CppTestRunner」/「GoogleTest Runner」/「Boost Unit Test Adapter」/「Jasmine Test Adapter」などのさまざまなテストアダプターが見つかる。
ここで、NUnitのインストール方法についても解説しておこう。インストールパッケージをダウンロードしてきてインストール作業を行ってもよいが、今はNuGetから簡単に導入できるのだ(次の画像)。プロジェクトごとに導入する必要があるものの、一度セットアップしたプロジェクトをソースコードリポジトリに格納してしまえば、開発用PCごとにNUnitをセットアップする必要がなくなる。
「NUnit Test Adapter」をNuGetから導入すればよい*4。
上でNUnitをプロジェクトに導入したときと同様な手順で、NUnit Test Adapterも導入できる(次の画像)。
*4 NUnit Test AdapterはVSIXパッケージとしても公開されているので、Visual Studioの拡張機能としてもインストールできる。その場合は、プロジェクトごとにNuGetから導入する必要はなくなる。なお、拡張機能のインストールは、メニューバーの[ツール]−[拡張機能と更新プログラム]から行える。
NUnit Test Adapterが導入できたら、MSTestと同様にテストエクスプローラーでユニットテストを実行できる。次の画像は、ユニットテストをいくつか書いて実行してみた結果だ。画像に見えるように、MSTestのユニットテストとNUnitのユニットテストを混在させ、それらを一度に実行することも可能なのである。
カテゴリ:Visual Studio 処理対象:IDE 処理対象:テスト
Copyright© Digital Advantage Corp. All Rights Reserved.