MSBuildからGallioの実行

ビルドサーバを構築している場合、MSBuildやNAntからテストを実行することも多いと思います。ここでは、MSBuildからGallioを呼び出す方法を紹介します。

MSBuildでGallioのテストを実施

MSBuildは、.NET Framework2.0以上の環境で利用できるビルドツールです。XML形式のビルドファイルを記述して、その内容に従ったテストを行うことができます。

MSBuildのビルドファイル例(Build.xml)

<?xml version="1.0" encoding="utf-8" ?>
<Project DefaultTargets="RunTest"
 xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >

  <!-- Gallioタスクの読み込み -->
  <UsingTask AssemblyFile="C:\Program Files\Gallio\bin\Gallio.MsBuildTasks.dll"
             TaskName="Gallio" />

  <!-- テスト対象アセンブリの設定 -->
  <ItemGroup>
    <TestDlls Include="MathTestsMbUnit3\bin\Debug\MathTestsMbUnit3.dll" />
    <TestDlls Include="MathTestsNUnit\bin\Debug\MathTestsNUnit.dll" />
  </ItemGroup>


  <!-- RunTestターゲット -->
  <Target Name="RunTest">
    <Gallio Assemblies="@(TestDlls)" ReportTypes="xml;html" >
      <!-- テスト結果をRetCodeプロパティにセット -->
      <Output TaskParameter="ExitCode" PropertyName="RetCode"/>
    </Gallio>
    <!-- エラーがあればメッセージを出力 -->
    <Error Condition="'$(RetCode)' != 0" Text="テストに失敗しました" />
  </Target>

</Project>

Gallioを使うには、タスクファイル「Gallio.MsBuildTasks.dll」をUsingTaskタグを使って読み込ませます。このタスクを正しく読み込ませるにはTaskName属性を「Gallio」という値に設定する必要があります。 ターゲットでは、Gallioタスクを使って、Assemblies属性(テスト対象アセンブリ)やReportTypes属性(出力するレポート形式)等を設定できます。設定できる内容はEchoとほぼ同じですが、正しい属性名については、インストールマニュアル「Offline Documentation」のGallio.MSBuildTasksのページを確認すると良いでしょう。

最後に

以上、3回にわたってテストプラットフォームGallioについて紹介してきました。近年、テスト駆動開発(Test-Driven Development:TDD)やテストツールに関する話題を耳にする機会が増えてきました。テストを重視した開発スタイルが人気を集めてきているのは喜ばしいことですが、既存のテスト資産をどのように扱えば良いのか悩んだり、新しいテストフレームワークの採用に不安を感じてしまったりする機会が増えてくるかもしれません。そのような時に、このGallioを利用することで、テストフレームワークの導入や管理が容易になるかもしれません。登場したばかりのGallioですが、今後の動向に注目してみてはいかがでしょうか。