本稿では、複数のテストフレームワークをまとめて実行することができる「Gallio」というオープンソースプロダクトについて紹介します。Gallioは、様々なテストフレームワークに対して中立的で独立したテスト環境を提供します。Gallioを利用すれば、1つの開発プロジェクト内で複数のテストフレームワークを採用したり、新しいテストフレームワークを積極的に導入したりできるようになります。前編にあたる今回は、.NET環境で動作するテストフレームワークの概要と、Gallioのインストール方法について解説します。後編では、ツール群の利用方法とGallioの動作について解説します。

.NETで動作するユニットテストフレームワーク

まず、.NET開発で利用できる主要なユニットテスト(単体テスト)フレームワークについて見ていきましょう。

.NET開発で利用できる主要なテスティングフレームワーク

名前 登場年 最新バージョン 特徴
NUnit 2001 2.4.8 歴史が長く安定度も高い。オープンソースだが情報も多い
csUnit 2001 2.5 開発が止まっていたが、2006年から開発を再開
MbUnit 2004 3.0.4 データドリブン系機能の早期対応や拡張機能など独自性が高い
MSTest 2005 VS2008 Visual Studioの上位エディションで利用可能。Visual Studioに統合された使いやすいUIに加え、MSDNのドキュメントも充実している
xUnit.NET 2007 1.0.3 最も後発のフレームワーク。新しいコンセプトの元に開発が行われている

それでは1つずつ紹介していきます。

NUnit

NUnitは.NETと同じくして登場したオープンソースのユニットテストフレームワークです。初期バージョンの1.xはJUnitの移植でしたが、現在の2.xバージョンでは、.NETに適した設計で実装されて開発が続けられています。Visual Studio 2003以前や、テスト機能の備わっていないVisual Studioでの開発に良く利用されます。

NUnitの実行画面(GUIテストランナー)

利用者も多く、信頼度の高いフレームワークです。最近では、記述しやすい「Assert.That(テスト値, Is.~(予想値))」アサーションや、行テスト/データソース指定などデータドリブンテスト向けの機能が追加されつつあります。

csUnit

csUnitは、NUnitと同様に長い歴史を持つテストフレームワークです。NUnitが人気を博したため、開発は停滞していましたが、2006年頃から開発が再開され、それからはコンスタントに更新/ダウンロードされています。Visual Studioのアドインウィンドウが提供されていることもあり、エディタから簡単にテストできるのが特徴です。

csUnitの実行画面。csUnitのテストウィンドウを利用できる

機能はシンプルですが、実行時間などの統計機能も備わっています。ただ、日本語環境では、うまく動作しないといった問題もありました(インストール先フォルダのen-USフォルダをja-JPという名前のフォルダとしてコピーすれば動作しました)。