MbUnit

MbUnitは、2004年にPeli氏(現在MicrosoftでPexを担当)が、技術系サイトで話題となった記事のテストパターンを.NETで実装したことから始まりました。Peli氏の大学卒業に合わせ、オープンソースとなり、他の技術者に引き継がれながら開発が続いています。

MbUnit3の実行画面。MbUnit3ではテスト実行環境にGallioを使用する

データベースロールバック/行テストなど便利な属性に加え、独自属性を定義できる拡張性の高さなどからオープンソースではNUnitの次に人気があります。最新のMbUnit3では、CSVデータ読み込み用の属性、テスト依存順を設定する属性、例外用のアサーションメソッドなどが追加されています。アサーションクラスをAssertクラスに統一するなどのスリム化も図られています。

MSTest(Visual Studioの単体テスト機能)

MSTestは、Visual Studioに組み込まれているテスト機能です。Visual Studio 2008のProfessional以上、Visual Studio 2005のTeam Systemで単体テスト機能を利用できます。Visual Studio内の各種ウィンドウを使ってテストを管理できます。エディタとの連携機能も優れており、テストメソッドの雛形を生成したり、エラーを容易に把握したりできます。

Visual Studioのテスト用ウィンドウ(テストビュー、テストリスト、テスト結果)

Team Foundation ServerやTeam Systemの機能(作業項目管理、Webテスト、カバレッジ、メトリックス等)とも連携でき、データドリブンテスト、ASP.NET単体テストも可能なので、ソフトウェア開発サイクル全体を考慮した高度なテストを実施できます。

xUnit.NET

xUnit.NETは、NUnitを開発していたJames Newkirk氏(Microsoft CodePlex担当)、Brad Wilson氏(Microsoft ASP.NETチーム)が中心となって開発をしている新しいユニットテストフレームワークです。

xUnit.NETのGUIテストランナー

今さら、新しいユニットテストフレームワークが必要なのかという疑問を感じる方も多いかもしれませんが、xUnit.NETは、従来のユニットテストフレームワークとは異なる設計の元で開発されています。例えば、(NUnit、MbUnit、csUnitとは異なり、MSTestと同じように)テストメソッドを呼び出す度にテストクラスのインスタンスが生成されます。また、属性の数を減らし利用者側で属性を容易に定義できるようになっていたり、例外用のアサーションメソッドが用意されていたりします。まだ開発は始まったばかりですが、今後が期待されます。