「NUnit」の版間の差分
imported>Administrator |
imported>Administrator (→概要) |
||
(同じ利用者による、間の7版が非表示) | |||
1行目: | 1行目: | ||
− | '''NUnit''' | + | '''NUnit'''とは、[[単体テスト]]([[ユニットテスト]])を行う[[プログラム]]を作るための[[フレームワーク]]、およびそれらの単体テストプログラムの自動実行を支援するためのツールである。 |
− | + | == 概要 == | |
+ | [[Visual Studio]]では、[[マイクロソフト]]製の単体テストフレームワーク([[MSTest]])は上位エディションにしか含まれない。また、[[MSTest]]は[[Visual Studio 2008]]に含まれるかたちで2008年2月1日(金)に最初の正式リリースとなっており比較的新しい部類に入る。 | ||
− | + | このため多くの[[プログラマー]]はNUnitや[[MbUint]]、[[XUnit]]などの[[サードパーティ]]製の[[テストフレームワーク]]に既に慣れてしまっていた。さらにRhino モック、Type モック、NMock などのサードパーティ製の[[モックフレームワーク]]を併用していることが多く、それらのテストとモックの親和性も問題となった。 | |
− | [[ | ||
− | |||
− | + | 加えて、[[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 (チェックを入れる) | ||
19行目: | 31行目: | ||
※NUnit 2.6.0.12051 | ※NUnit 2.6.0.12051 | ||
− | + | == アプリケーション構成ファイル(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 | ||
28行目: | 40行目: | ||
※NUnit 2.6.0.12051 | ※NUnit 2.6.0.12051 | ||
− | + | == デバッガを使う == | |
NUnitでのテスト実行に対しVisual Studio 2010でステップ実行などのデバッグを行うには下記の手順を用いる。 | NUnitでのテスト実行に対しVisual Studio 2010でステップ実行などのデバッグを行うには下記の手順を用いる。 | ||
# Visual Studio 2010のメインメニューから「デバッグ→プロセスにアタッチ」を選ぶ。 | # Visual Studio 2010のメインメニューから「デバッグ→プロセスにアタッチ」を選ぶ。 | ||
36行目: | 48行目: | ||
※NUnit 2.6.0.12051 | ※NUnit 2.6.0.12051 | ||
− | + | == F5で自動起動&実行する == | |
− | Visual Studio Express 以外の場合は、[[TestDriven.Net]] | + | Visual Studio Express 以外の場合は、[[TestDriven.Net]][http://www.testdriven.net/]をインストールするのが手っ取り早い。 |
Visual Studio Expressの場合は、下記の手順。 | Visual Studio Expressの場合は、下記の手順。 | ||
65行目: | 77行目: | ||
</source> | </source> | ||
− | + | 以上で完了。 | |
+ | Visual Studioでプロジェクトファイルを開けば動くようになっているはず。 | ||
+ | |||
+ | なお、上記の内容はHage.Test.csprojに直接書き込んでも問題ないが、ファイルが若干大き目なので探すのが大変かもしれないので、Hage.Test.csproj.userを使った方が良いと思う。 | ||
+ | |||
+ | また、この方法ではデバッグが有効にならないので注意。 | ||
== 関連項目 == | == 関連項目 == |
2012年5月31日 (木) 01:21時点における最新版
NUnitとは、単体テスト(ユニットテスト)を行うプログラムを作るためのフレームワーク、およびそれらの単体テストプログラムの自動実行を支援するためのツールである。
目次
概要[編集 | ソースを編集]
Visual Studioでは、マイクロソフト製の単体テストフレームワーク(MSTest)は上位エディションにしか含まれない。また、MSTestはVisual Studio 2008に含まれるかたちで2008年2月1日(金)に最初の正式リリースとなっており比較的新しい部類に入る。
このため多くのプログラマーはNUnitやMbUint、XUnitなどのサードパーティ製のテストフレームワークに既に慣れてしまっていた。さらにRhino モック、Type モック、NMock などのサードパーティ製のモックフレームワークを併用していることが多く、それらのテストとモックの親和性も問題となった。
加えて、Visual Studio Express Editionでは拡張機能(アドオン)が使えないという制約があり、IDEと統合された現実的な方法でテストを行うことが不可能に近い状況であった。
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)。
IDE Support → Visual Studio → Enable Visual Studio Support (チェックを入れる)
ソリューションファイルを開くと、含まれるテストの一覧がツリー表示されるので「Run」で実行する。 以後、テスト一覧はVisual Studio側でリビルドするごとに自動的に再読み込みされる。
※NUnit 2.6.0.12051
アプリケーション構成ファイル(app.config)を使う[編集 | ソースを編集]
- NUnitのGUIツールを起動し設定(Tool→Settings)より、下記のラジオボタンにチェックを入れる。
- Test Loader → Assembly Isolation → Default Domain Usage → Use a separate AppDomain per Assembly
- Visual Studioでテストプロジェクトのプロパティを開きビルドイベントの「ビルド後に実行するコマンドライン」の欄に下記を記述する。
- copy $(ProjectDir)App.config $(TargetPath).config
- プロジェクトをリビルドする。
※NUnit 2.6.0.12051
デバッガを使う[編集 | ソースを編集]
NUnitでのテスト実行に対しVisual Studio 2010でステップ実行などのデバッグを行うには下記の手順を用いる。
- Visual Studio 2010のメインメニューから「デバッグ→プロセスにアタッチ」を選ぶ。
- 「選択可能なプロセス」欄からnunit-agent.exeを選び下部のアタッチボタンを押す。
- NUnitでテストを実行する。
※NUnit 2.6.0.12051
F5で自動起動&実行する[編集 | ソースを編集]
Visual Studio Express 以外の場合は、TestDriven.Net[1]をインストールするのが手っ取り早い。
Visual Studio Expressの場合は、下記の手順。
- テストプロジェクトを保存していあるディレクトリを開く。
- プロジェクトファイル(拡張子「.csproj」)を探す。
- 例)Hage.Test.csproj
- 上で発掘したプロジェクトファイル名の末尾に「.user」を探す。存在しない場合は空のテキストファイル(中身はXML)を作る。
- 例)Hage.Test.csproj.user
- 上記で作ったテキストファイルを何かしらのテキストエディタで開き、以下の内容を記述する。すでにファイルが存在し、中身がある場合は必要部分だけを記述すること。
<?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を使った方が良いと思う。
また、この方法ではデバッグが有効にならないので注意。