チーム開発のための .NET 開発環境の整備(TDDの準備1)

.NETでのチーム開発のための環境整備を社内で作成しているところですが、備忘もかねて作業記録や気が付いた点など書いていきます。


今回はTDD開発進めるにあたり準備することを記載します。

今回の概要

  1. 単体テストフレームワーク(NUnit+ChainingAsserion)
  2. Jenkinsの設定

今回の環境

  • VisualStudio 2012
  • Entity Framework 5.0
  • ASP.NET MVC4
  • Jenkins

1. 単体テストフレームワーク(NUnit+ChainingAsserion)

NUnitChaining Assertionを使ってみます。

NUnitについてはNUnitの全貌 ~ 基本から、最新バージョンの新機能まで By Codezineという記事に詳しく説明があります。

インストール

拡張機能と更新プログラム」を開いて「NUnit Test Adapter(Beta6)」をインストールします f:id:kuroyanagi_h:20130726152929p:plain

テスト用のプロジェクトを「クラスライブラリ」で作成します。 パッケージマネージャーコンソールを開いて既定のプロジェクトを今作成したテスト用プロジェクトにしてコンソール画面で「Install-Package nunit」と入力してインストールをします。 続けてコンソール画面で「Install-Package ChainingAssertion-Nunit」と入力してインストールをします。 f:id:kuroyanagi_h:20130726155229p:plain

テストの記述については、NUnitやChainingAssertionのページをご覧ください。 ChainingAssertionについてはソースで追加されているので独自の拡張も簡単にできるライブラリです。

2. Jenkins

Windows OSにJenkinsを立てたのでJenkinsを使ってNUnitのテスト自動実行させるためには、まずコンパイル環境が必要です。 コンパイルには .NETフレームワークMSBuild を用いてコンパイルしますが、 念のため今回は VisualStudio 2012 Express版もJenkinsの入っているCIサーバーにインストールしました。 また、NUnitを実行するためにCIサーバーにNUnitこちらからダウンロードして インストールします。

追加したJenkinsプラグイン

MSBuild Plugin

Jenkinsでビルドを行う時に使用するプラグインです。 設定は以下の画面で行います。

  • [Jenkinsの管理]-[システムの設定] f:id:kuroyanagi_h:20130730113313p:plain 使用するMSBuildのバージョン毎に名前を付けてそのパスを設定します。

  • プロジェクトのの設定 f:id:kuroyanagi_h:20130730113823p:plain システムの設定で登録されたMSBuildのバージョンを選んでビルド対象のプロジェクトファイルを指定します。 あとはMSBuildを実行する際のコマンドラインオプションを設定します。

NUnit Plugin

NUnitの実行結果をレポートする時に使用するプラグインです。

  • プロジェクトの設定
    • NUnitの実行 f:id:kuroyanagi_h:20130730115048p:plain プラグインがないので、「Windowsバッチコマンド実行」を使用して直接NUnit実行コマンドを設定します。 NUnit実行結果をレポートするためにXML形式で出力するように指定します。
    • NUnit実行結果の集計 f:id:kuroyanagi_h:20130730114558p:plain 「ビルド後の処理の追加」で「Publish NUnit test result report」を選択し上記のNUnit実行時に出力したXMLファイルを指定します。
Jenkins表示結果

こんな表示や f:id:kuroyanagi_h:20130730120007p:plain 「最新のテスト結果」をクリックするとこんな表示ができるようになります。 f:id:kuroyanagi_h:20130730120025p:plain