NUnit

提供: MonoBook
ナビゲーションに移動 検索に移動

NUnitとは、単体テストユニットテスト)を行うプログラムを作るためのフレームワーク、およびそれらの単体テストプログラムの自動実行を支援するためのツールである。

概要[編集 | ソースを編集]

Visual Studioでは、マイクロソフト製の単体テストフレームワーク(MSTest)は上位エディションにしか含まれない。また、MSTestVisual Studio 2008に含まれるかたちで2008年2月1日(金)に最初の正式リリースとなっており比較的新しい部類に入る。

このため多くのプログラマーはNUnitやMbUintXUnitなどのサードパーティ製のテストフレームワークに既に慣れてしまっていた。さらにRhino モック、Type モック、NMock などのサードパーティ製のモックフレームワークを併用していることが多く、それらのテストとモックの親和性も問題となった。

加えて、Visual Studio Express Editionでは拡張機能(アドオン)が使えないという制約があり、IDEと統合された現実的な方法でテストを行うことが不可能に近い状況であった。

NUnitは、それらをすべて解決すべく実装されており、またVisual Studio Express Editionであっても外部のGUIツールによりプロジェクトディレクトリの更新を自動検出(監視)することで、Visual Studioとは統合されていないのに連動して動作することができるようになっている。

なお、MonoDevelopにはNUnitが統合されており、上記のように難しいことを考える必要が一切ない。環境構築などという無駄な作業など考えず、MonoDevelopインストールし、プログラムを作り、テストプログラムを書けばよい。MonoDevelopの発展のためにもMonoDevelopを積極的に使おう。

インストール[編集 | ソースを編集]

インストーラの指示に従え。 あやぶむなかれ。

テストの作り方[編集 | ソースを編集]

  1. クラスライブラリなプロジェクトを作る(ソリューションに追加する)。
  2. 参照の追加で「NUnit.Framework」を追加する。
  3. テストクラスを書く
  4. 以上

Visual Studioと連携させる[編集 | ソースを編集]

NUnitのGUIツールを起動し設定(Tool→Settings)を開き、下記の設定を有効にする。この設定をすることによりVisual Studioのソリューションファイルを開けるようになる(File→Open Project)。

IDE Support → Visual Studio → Enable Visual Studio Support (チェックを入れる)

ソリューションファイルを開くと、含まれるテストの一覧がツリー表示されるので「Run」で実行する。 以後、テスト一覧はVisual Studio側でリビルドするごとに自動的に再読み込みされる。

※NUnit 2.6.0.12051

アプリケーション構成ファイル(app.config)を使う[編集 | ソースを編集]

  1. NUnitのGUIツールを起動し設定(Tool→Settings)より、下記のラジオボタンにチェックを入れる。
    Test Loader → Assembly Isolation → Default Domain Usage → Use a separate AppDomain per Assembly
  2. Visual Studioでテストプロジェクトのプロパティを開きビルドイベントの「ビルド後に実行するコマンドライン」の欄に下記を記述する。
    copy $(ProjectDir)App.config $(TargetPath).config
  3. プロジェクトをリビルドする。

※NUnit 2.6.0.12051

デバッガを使う[編集 | ソースを編集]

NUnitでのテスト実行に対しVisual Studio 2010でステップ実行などのデバッグを行うには下記の手順を用いる。

  1. Visual Studio 2010のメインメニューから「デバッグ→プロセスにアタッチ」を選ぶ。
  2. 「選択可能なプロセス」欄からnunit-agent.exeを選び下部のアタッチボタンを押す。
  3. NUnitでテストを実行する。

※NUnit 2.6.0.12051

F5で自動起動&実行する[編集 | ソースを編集]

Visual Studio Express 以外の場合は、TestDriven.Net[1]をインストールするのが手っ取り早い。

Visual Studio Expressの場合は、下記の手順。

  1. テストプロジェクトを保存していあるディレクトリを開く。
  2. プロジェクトファイル(拡張子「.csproj」)を探す。
    例)Hage.Test.csproj
  3. 上で発掘したプロジェクトファイル名の末尾に「.user」を探す。存在しない場合は空のテキストファイル(中身はXML)を作る。
    例)Hage.Test.csproj.user
  4. 上記で作ったテキストファイルを何かしらのテキストエディタで開き、以下の内容を記述する。すでにファイルが存在し、中身がある場合は必要部分だけを記述すること。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">

    <!-- ファイルが存在する場合は下記だけを記述する -->

    <!-- ここから -->
    <StartAction>Program</StartAction>
    <StartProgram>$(ProgramFiles)\NUnit 2.6\bin\nunit.exe</StartProgram>
    <StartArguments>/run $(TargetPath)</StartArguments>
    <!-- ここまで -->

  </PropertyGroup>
</Project>

以上で完了。 Visual Studioでプロジェクトファイルを開けば動くようになっているはず。

なお、上記の内容はHage.Test.csprojに直接書き込んでも問題ないが、ファイルが若干大き目なので探すのが大変かもしれないので、Hage.Test.csproj.userを使った方が良いと思う。

また、この方法ではデバッグが有効にならないので注意。

関連項目[編集 | ソースを編集]

外部リンク[編集 | ソースを編集]