本稿では、複数のテストフレームワークをまとめて実行することができる「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での開発に良く利用されます。
利用者も多く、信頼度の高いフレームワークです。最近では、記述しやすい「Assert.That(テスト値, Is.~(予想値))」アサーションや、行テスト/データソース指定などデータドリブンテスト向けの機能が追加されつつあります。
csUnit
csUnitは、NUnitと同様に長い歴史を持つテストフレームワークです。NUnitが人気を博したため、開発は停滞していましたが、2006年頃から開発が再開され、それからはコンスタントに更新/ダウンロードされています。Visual Studioのアドインウィンドウが提供されていることもあり、エディタから簡単にテストできるのが特徴です。
機能はシンプルですが、実行時間などの統計機能も備わっています。ただ、日本語環境では、うまく動作しないといった問題もありました(インストール先フォルダのen-USフォルダをja-JPという名前のフォルダとしてコピーすれば動作しました)。