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]等のチェックを外しておくと良いでしょう。