Gallioの登場

このように、.NET環境には多くのテストフレームワークが存在しており、これらのほとんどがオープンソースです。そのため、互換性やユーザの取り込みを意識して、他のフレームワークを実行できるようにテストランナーを拡張することも多くなってきました(例えば、MSTestで書いたコードをNUnit2.2.10のテストランナーで実行できたり、NUnitで書いたコードをcsUnit2.5のテストランナーで実行できたりします)。

このような状況が続く中、MbUnitチームの開発者Jeff Brown氏は、様々な技術者と議論を行い「テストフレームワークに依存しない独立したテスト環境とツール」に価値があると考えるようになったそうです。その結果、MbUnitチームは、テスト実行環境を「Gallio」、テストフレームワークを「MbUnit3」と分離することを決め、その最初のバージョンがついにリリースされたというわけです。

Gallioのインストール

独立したテスト環境といってもイメージが浮かびにくいと思いますので、ここからは、インストール方法やツールを紹介しながら、Gallioについて解説していきたいと思います。 まずは、Gallioの導入方法から見ていきましょう。インストーラはGallioのサイトからダウンロードできます。このサイトではドキュメントやブログなども公開されています。ソースコードリポジトリやメーリングリストはGoogleCodeのサイトで管理されています。 ここでは最新バージョンの「GallioBundle-3.0.4.485-Setup-x86.msi」をダウンロードしました。ダブルクリックしてNextをクリックしていくと、次のような画面が表示されます。

Gallioのインストールオプション

ここでCustomをクリックすると、インストール対象のコンポーネントを選択できます。

Gallioのカスタムセットアップ画面

これらのコンポーネントの説明は下表の通りです。既定の設定では全てのコンポーネントがインストールされます。

Gallioのコンポーネントオプション

コンポーネント 説明
Gallio Gallio本体(テストプラットフォーム)
MbUnit3 説明
Visual Studio 2005 Templates VS2005のMbUnit用テンプレート(C#、VB)
Visual Studio 2008 Templates VS2008のMbUnit用テンプレート(C#、VB)
テストアダプター 説明
MbUnit v2 MbUnit2のテスト対応
MSTest MSTest のテスト対応 (Team System等のインストール時のみ)
csUnit csUnitのテスト対応
NUnit NUnit のテスト対応
xUnit.NET xUnit.NETのテスト対応
テストランナー 説明
PowerShell commands PowerShellからテスト実施
TestDriven.NET Runner TestDriven.NETからGallioを介してテスト実施(テストフレームワーク毎に選択可能)
Visual Studio Add-IN Visual Studiのテストビュー(Team System等)からテスト実施
Icarus GUIのテストランナー
Echo コンソールのテストランナー
MSBuild task MSBuild のビルドスクリプトから実行できるタスク
NAnt task NAntのビルドスクリプトから実行できるタスク
ツール統合 説明
Ambience テスト用オブジェクトデータベース
Browser Integration ブラウザに表示されたGallioレポートから、VSエディタのエラー箇所へのジャンプ機能
NCover v1.5.8 Integration コードカバレッジツールNCover1.5.8統合
NCover v2 Integration コードカバレッジツールNCover2.0統合(別途NCover v2が必要)
TeamCity Integration CIサーバTeamCityのレポートとの統合(別途TeamCityが必要)
TypeMock.NET Integration テスト用のモック機能を提供するTypeMock.NETを利用(別途TypeMock.NET vが必要)
ドキュメント 説明
Standalone Help Docs CHM形式のドキュメント
Visual Studio Help Docs Visual Studioのヘルプ(MSDN)に統合するドキュメント
サンプル 説明
Gallio Samples Gallioサンプルコード
MbUnit Samples MbUnitサンプルコード
その他拡張 説明
CruiseControl.Net extensions CIサーバCC.NETのWebDashboardのレポート用DLLやXML

なお、Visual StudioアドインのTestDriven.NETを使ってNUnitやMSTestのテストを行っている場合、これらのテストがGallio経由で実行されることになります(結果レポートなどが生成される代わりに若干遅くなります)。もし、TestDriven.NETの挙動を変えたくない場合には、[Test Runners]-[TestDriven.NET Runner]-[NUnit]等のチェックを外しておくと良いでしょう。