NUnit

提供: MonoBook
2012年3月8日 (木) 10:15時点におけるimported>Administratorによる版 (→‎F5で自動起動&実行する)
ナビゲーションに移動 検索に移動

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

拡張機能(アドオン)が使えない Visual Studio Express でも使えるのが最大の利点。

MonoDevelop

MonoDevelopではNUnitが統合されている。


Visual Studio 2010

Visual Studio 2010でNUnitを使うためにはNUnit付属のGUIツールを用いる。

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.Nethttp://www.testdriven.net/)をインストールするのが手っ取り早い。

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>

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

関連項目

外部リンク