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をクリックしていくと、次のような画面が表示されます。
ここでCustomをクリックすると、インストール対象のコンポーネントを選択できます。
これらのコンポーネントの説明は下表の通りです。既定の設定では全てのコンポーネントがインストールされます。
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]等のチェックを外しておくと良いでしょう。