最新版 |
編集中の文章 |
1行目: |
1行目: |
− | '''NUnit'''とは、[[単体テスト]]([[ユニットテスト]])を行う[[プログラム]]を作るための[[フレームワーク]]、およびそれらの単体テストプログラムの自動実行を支援するためのツールである。 | + | '''NUnit'''とは、単体テスト(ユニットテスト)を行うためフレームワーク、および自動実行を支援するためのツールである。 |
| | | |
− | == 概要 == | + | == MonoDevelop == |
− | [[Visual Studio]]では、[[マイクロソフト]]製の単体テストフレームワーク([[MSTest]])は上位エディションにしか含まれない。また、[[MSTest]]は[[Visual Studio 2008]]に含まれるかたちで2008年2月1日(金)に最初の正式リリースとなっており比較的新しい部類に入る。 | + | [[MonoDevelop]]ではNUnitが統合されている。 |
| + | {{stub}} |
| | | |
− | このため多くの[[プログラマー]]はNUnitや[[MbUint]]、[[XUnit]]などの[[サードパーティ]]製の[[テストフレームワーク]]に既に慣れてしまっていた。さらにRhino モック、Type モック、NMock などのサードパーティ製の[[モックフレームワーク]]を併用していることが多く、それらのテストとモックの親和性も問題となった。
| + | == Visual Studio 2010 == |
| + | Visual Studio 2010でNUnitを使うためにはNUnit付属のGUIツールを用いる。 |
| | | |
− | 加えて、[[Visual Studio Express Edition]]では拡張機能(アドオン)が使えないという制約があり、[[IDE]]と統合された現実的な方法でテストを行うことが不可能に近い状況であった。
| + | === Visual Studioと連携させる === |
− | | |
− | NUnitは、それらをすべて解決すべく実装されており、また[[Visual Studio Express Edition]]であっても外部のGUIツールによりプロジェクトディレクトリの更新を自動検出(監視)することで、[[Visual Studio]]とは統合されていないのに連動して動作することができるようになっている。
| |
− | | |
− | なお、[[MonoDevelop]]にはNUnitが統合されており、上記のように難しいことを考える必要が一切ない。環境構築などという無駄な作業など考えず、[[MonoDevelop]]を[[インストール]]し、[[プログラム]]を作り、[[テストプログラム]]を書けばよい。[[MonoDevelop]]の発展のためにも[[MonoDevelop]]を積極的に使おう。
| |
− | | |
− | == インストール ==
| |
− | インストーラの指示に従え。
| |
− | あやぶむなかれ。
| |
− | | |
− | == テストの作り方 ==
| |
− | # クラスライブラリなプロジェクトを作る(ソリューションに追加する)。
| |
− | # 参照の追加で「NUnit.Framework」を追加する。
| |
− | # テストクラスを書く
| |
− | # 以上
| |
− | | |
− | == Visual Studioと連携させる == | |
| NUnitのGUIツールを起動し設定(Tool→Settings)を開き、下記の設定を有効にする。この設定をすることによりVisual Studioのソリューションファイルを開けるようになる(File→Open Project)。 | | NUnitのGUIツールを起動し設定(Tool→Settings)を開き、下記の設定を有効にする。この設定をすることによりVisual Studioのソリューションファイルを開けるようになる(File→Open Project)。 |
| IDE Support → Visual Studio → Enable Visual Studio Support (チェックを入れる) | | IDE Support → Visual Studio → Enable Visual Studio Support (チェックを入れる) |
31行目: |
17行目: |
| ※NUnit 2.6.0.12051 | | ※NUnit 2.6.0.12051 |
| | | |
− | == アプリケーション構成ファイル(app.config)を使う == | + | === アプリケーション構成ファイル(app.config)を使う === |
| # NUnitのGUIツールを起動し設定(Tool→Settings)より、下記のラジオボタンにチェックを入れる。 | | # NUnitのGUIツールを起動し設定(Tool→Settings)より、下記のラジオボタンにチェックを入れる。 |
| #; Test Loader → Assembly Isolation → Default Domain Usage → Use a separate AppDomain per Assembly | | #; Test Loader → Assembly Isolation → Default Domain Usage → Use a separate AppDomain per Assembly |
40行目: |
26行目: |
| ※NUnit 2.6.0.12051 | | ※NUnit 2.6.0.12051 |
| | | |
− | == デバッガを使う == | + | === デバッガを使う === |
| NUnitでのテスト実行に対しVisual Studio 2010でステップ実行などのデバッグを行うには下記の手順を用いる。 | | NUnitでのテスト実行に対しVisual Studio 2010でステップ実行などのデバッグを行うには下記の手順を用いる。 |
| # Visual Studio 2010のメインメニューから「デバッグ→プロセスにアタッチ」を選ぶ。 | | # Visual Studio 2010のメインメニューから「デバッグ→プロセスにアタッチ」を選ぶ。 |
47行目: |
33行目: |
| | | |
| ※NUnit 2.6.0.12051 | | ※NUnit 2.6.0.12051 |
− |
| |
− | == F5で自動起動&実行する ==
| |
− |
| |
− | Visual Studio Express 以外の場合は、[[TestDriven.Net]][http://www.testdriven.net/]をインストールするのが手っ取り早い。
| |
− |
| |
− | Visual Studio Expressの場合は、下記の手順。
| |
− |
| |
− | # テストプロジェクトを保存していあるディレクトリを開く。
| |
− | # プロジェクトファイル(拡張子「.csproj」)を探す。
| |
− | #: 例)Hage.Test.csproj
| |
− | # 上で発掘したプロジェクトファイル名の末尾に「.user」を探す。存在しない場合は空のテキストファイル(中身はXML)を作る。
| |
− | #: 例)Hage.Test.csproj.user
| |
− | # 上記で作ったテキストファイルを何かしらのテキストエディタで開き、以下の内容を記述する。すでにファイルが存在し、中身がある場合は必要部分だけを記述すること。
| |
− | <source lang="xml">
| |
− | <?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>
| |
− | </source>
| |
− |
| |
− | 以上で完了。
| |
− | Visual Studioでプロジェクトファイルを開けば動くようになっているはず。
| |
− |
| |
− | なお、上記の内容はHage.Test.csprojに直接書き込んでも問題ないが、ファイルが若干大き目なので探すのが大変かもしれないので、Hage.Test.csproj.userを使った方が良いと思う。
| |
− |
| |
− | また、この方法ではデバッグが有効にならないので注意。
| |
| | | |
| == 関連項目 == | | == 関連項目 == |