連載:Team Foundation Server 2010入門

第5回 Team Foundation Server 2010 自動ビルドの便利機能を使いこなそう

WINGSプロジェクト りばてぃ(監修:山田 祥寛)
2010/11/24
Page1 Page2 Page3

 前回はTeam Foundation Server 2010(以下、TFS 2010)の自動ビルドの基本的な使い方について解説した。

 自動ビルドの大きな目的は、アプリケーションに関係するすべての最新ソース・コードをまとめてコンパイルして、エラーがないことを確かめるという作業を小刻みに行うことで、修正にかかる時間を短縮しようとすることだ。この点では、TFS 2010の自動ビルドで単純にコンパイルができるようにするだけでも大きな成果を得られる。

 しかしビルドが勝手に行われても、その後の品質チェックは手作業で行うとなると、ビルド数が増える分、むしろ人の手をかける作業が増えてしまう。それでは本末転倒であるため、この品質チェックについてもある程度の水準までを自動ビルドの中で行い、さらに手間を減らすことを考えるべきだろう。

 品質チェックの仕組みとしてVisual Studio 2010(以下、VS 2010)には、「静的コード分析」と「単体テスト」という機能が用意されている。今回はこの2つを自動ビルドに組み込んでしまおう。

品質チェック機能と自動ビルドの組み合わせを行うときのちょっとした準備

 静的コード分析と単体テストは、もともとVS 2010に用意されている機能で、前者はPremium、後者はProfessional以上のエディションで利用できる。

 自動ビルドでこれらの機能を組み合わせて利用した場合、TFS 2010からビルドの命令を受け取って実際にビルドを実行するマシン(「ビルド・エージェント」と呼ぶ)が、これらの機能を呼び出して実行することになる。つまり、ビルド・エージェントとなるマシンには、自動ビルドとの組み合わせに利用する機能(この場合、静的コード分析や単体テスト)を含んだエディションのVS 2010をあらかじめインストールしておく必要がある。前回紹介したとおりの標準的な方法で自動ビルドをセットアップしている場合には、ビルド・エージェントはTFS 2010と同一マシンになるため、そこに該当するエディションのVS 2010をインストールしておこう。

 今回は触れないため余談となるが、ほかに「Webテスト」や「ロード・テスト」といった機能を、自動ビルドの中で利用することも可能だ。ただし、当然この場合には、ビルド・エージェントにVS 2010 Ultimateがインストールされている必要がある。

 なお本稿では、TFS 2010がインストールされたマシンにVS 2010 Ultimateをインストールした環境で解説を行う。

「静的コード分析」と自動ビルドの組み合わせ

 まずは静的コード分析を自動ビルドに組み込んでみよう。

 静的コード分析は、クラスやメソッドの名前付けやパフォーマンス、セキュリティ上の問題がないかなどを、あらかじめ決められたルール(=規則)にのっとってチェックする機能だ。通常は、開発者が自端末でビルドを行う場合に利用するが、ソース管理に(ソース・コードを)チェックインする前に「コード分析」のチェックにクリアしていることを強制させる方法があることを以前に紹介した。

 チェックイン前のコード分析を組み込んでいれば、ビルドを行う以前に自端末でビルドした際と、ソース管理にチェックインする際の2回にわたって、チェックを行える状態になっているが、あくまで自分の担当範囲内のチェックに限られる。このため、「アプリケーション全部の最新のソース・コードをチェックする」という観点では自動ビルドの中にも組み込んでおくと便利だ。

 今回は、開発中のプロジェクトに設定されている内容に基づいて、自動ビルド中にコード分析を行う方法を中心に手順を確認していくことにしよう。

コード分析のルール・セットの設定/確認

 初めにVS 2010 Premium以上のエディションで開発中のソリューションを開き、コード分析の対象となるプロジェクトのプロパティ画面を開く。ここで、左側のタブ・メニューから[コード分析]を選択すると、図1のような画面が開く。

図1 コード分析の設定(プロジェクト・プロパティの[コード分析]タブ)

 この画面で[ビルドに対するコード分析の有効化 (CODE_ANALYSIS 定数を定義)]チェックボックスにチェックを入れる。これにより、自端末でプロジェクトをビルドした際に、静的コード分析機能によるコード・チェックが行われるようになる。

 [ルール セット]の[この規則セットを実行]ドロップダウンでは、初期値で「Microsoft 最小推奨規則」が選択されているが、どのようなチェックを行いたいかによって切り替えて利用すればよい。また、量が膨大なので多少の労力を必要とするが、1つ1つの規則を取捨選択して独自の規則セット(=ルール・セット)を作ることも可能だ。方法についての詳細は割愛するので、詳細が必要な場合には「MSDNライブラリ:カスタム コード分析規則セットの作成」を参照していただきたい。

 少し話がそれたが、今回は結果の確認時に内容が分かりやすいように「Microsoft のすべての規則」を選択してから設定を保存しておくことにする。プロジェクト・ファイルを編集したので、内容をチェックインしておくことも忘れずに。

ビルド定義のビルド・プロセス・パラメータの設定/確認

 次に、作成済みのビルド定義を確認しておこう。もし、利用可能なビルド定義がない場合には、前回の内容を参考に作成しておいていただきたい。

 では、[チーム エクスプローラー]で、([ビルド]項目の配下から)編集対象となるビルド定義を選択し、(そのビルド定義の項目を右クリックすると表示される)コンテキスト・メニューの[ビルド定義の編集]を選択しよう。コード・エディタ部分にビルド定義エディタが表示されたら、左側のメニューから[プロセス]を選択すると、図2のように表示される。

図2 ビルド定義のプロセスの編集(ビルド定義エディタ)

 前回も確認した内容だが、今回は[ビルド プロセス パラメーター]部分にある[2. 基本]の[コード分析の実行]に注目しよう。この値は初期値で「AsConfigured」に設定されており、ほかの2つと併せて、表1のような設定を行うことができる。

設定値 意味
AsConfigured(既定値) ビルド対象となった各プロジェクトに設定されている内容に基づいてコード分析を実行する
Never 常にコード分析を実行しない
Always 常にコード分析を実行する
表1 [コード分析の実行]ビルド・プロセス・パラメータの設定値

 [コード分析の実行]で「Always」を選ぶことで常にコード分析を強制させることもできるが、その際に利用するルール・セットは「Microsoft 最小推奨規則」となる。より柔軟性を持たせて自由に行いたい場合には「AsConfigured」を利用して、プロジェクトごとに設定したルールに基づいたチェックが行われるようにする。

静的コード分析を伴う、自動ビルドの実行

 設定が確認できたら、自動ビルド(=ビルド定義)を実行してみよう。具体的な実行方法は、前回説明したとおり

 [チーム エクスプローラー]からビルド定義の項目を選択し、その右クリック・メニューから[新しいビルドをキューに配置]を選択すると、ビルド定義をキューに配置するためのダイアログが表示される。ここで[パラメーター]タブを選択すると、図3のような画面が表示される。

図3 ビルド・プロセス・パラメータの設定([ビルド "<ビルド定義名>" をキューに配置]ダイアログ)

 この画面は、図2で確認したビルド定義エディタの[プロセス]タブにある[ビルド プロセス パラメーター]のうち、実行時に変更可能なものが表示されている。先ほどの[コード分析の実行]も表示されており、実行時に変更可能なことが分かる。ビルド定義を作成した際には、何かしらの意図を持って作成されているはずなので、通常は変更する必要はないだろうが、必要な場合にはこの設定画面も活用してみるといいだろう。

 設定が終われば、図3で[キューに登録]ボタンをクリックする。これにより、[ビルド エクスプローラー]が表示されるので、ビルドが完了するまでしばらく待つ。ビルド完了後に、一覧から、該当するビルド定義の項目(=成功したビルド定義は緑丸のレ点が、失敗したものは赤丸の×マークが、途中で停止したものは停止マークが付与されて表示される)をダブルクリックすると、図4のように実行結果の詳細が表示される。

図4 ビルドの実行結果の詳細

 ルール・セットとして「Microsoft のすべての規則」を使用した場合、通常はあまり考慮していないこともチェック対象となってくるため、図4のようにいくつかの警告が表示されることになる。

 先ほど説明したが、実際には、使用するルールを自分たちの要件に合わせて選択できるので、その設定を行ったうえでこのように警告が表示される場合は、すなわち予定する品質を満たしていないことになる。この場合、このビルドはその後に手作業で品質チェックを行うまでもなく「NG扱い」にしてしまって構わないということになり、作業負荷を軽減できる、という流れになる。

 続いて次のページでは、単体テストと自動ビルドの組み合わせについて説明する。


 INDEX
  [連載]Team Fourndaiton Server 2010入門
  第5回 Team Foundation Server 2010 自動ビルドの便利機能を使いこなそう
  1.「静的コード分析」と自動ビルドの組み合わせ
    2.「単体テスト」と自動ビルドの組み合わせ
    3.テスト・リストの階層設計/ゲート・チェックイン

インデックス・ページヘ  「連載:Team Foundation Server 2010入門」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間