CodeZine(コードジン)

特集ページ一覧

オープンソースの.NETツールを使って洗練されたビルド環境を作る

.NETプラットフォームで利用できるフリーのビルドツール

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2006/02/27 12:00

本稿では、.NETプラットフォームにおけるビルド環境のサンプルを1つ挙げ、「信頼性があり、予測可能で、価値が付加されたビルド」を作り上げるために、どれほどたくさんのツールが一緒に動作しているのかを示します。ここで取り上げるサンプルはごく基本的なものですが、ビルドに関する重要ないくつかの側面を概説しています。

目次

はじめに

 「アプリケーションをビルドする」というのは、単に[F5]キーを押すことだけではなく、それよりもはるかに膨大な作業が伴います。品質管理パッケージが続々とリリースされて数を増やしつつあり、.NETプラットフォームの開発者たちは、非常に洗練されたビルドプロセスを生み出すためのオプションを選べるようになりました。本稿では、ビルド環境のサンプルを1つ挙げ、「信頼性があり、予測可能で、価値が付加されたビルド」を作り上げるために、どれほどたくさんのツールが一緒に動作しているのかを示します。

 ビルドシステムの目標は、大まかには次のようになります。

  • ソース管理(ソースコントロール)を監視して、変更点がないかどうかを調べる
  • 最新のソースコードをソース管理から取得する
  • バージョン管理されたディレクトリの中でアプリケーションをビルドする
  • 新しいアセンブリ上でユニットテストを実行する
  • 新しいアセンブリでコーディング標準の妥当性を確認する
  • 最新のコードをベースに、ドキュメンテーションを作成する
  • 結果をWebや電子メール経由で発表する

 このように、ビルドプロセスでは、多くのタスクを自動処理します。

 まず、NAntから始めて、サンプルビルドを作成します。次に、そのNAntビルドファイルを展開して、「他に何ができるか」を示すサンプルとして、その他いくつかのタスクを実行します。手順は次のとおりです。

  1. ビルド環境のセットアップ
  2. Visual Stdudio .NETを使って「プログラム」ソリューションをビルドする
  3. 最初のNAntビルドファイルを作成し、ビルドする
  4. Visual Studio .NETを使ってテストプロジェクトをビルドする
  5. NUit testをビルドに追加する
  6. FxCopを使ってビルド中にコーディング標準の妥当性を確認する
  7. NDocを使ってビルド中にAPI Documentationを作成する
  8. VSSソース管理にソリューションを追加する
  9. ビルドファイルにSCCコントロールを追加する
  10. バージョン管理を追加する
  11. CruiseControl.NETを使って、ビルドプロセスを監視および管理する
    • 何らかの変更があった場合に、ビルドをトリガーする
    • ビルドの最終結果を電子メールまたはWebレポートでビルドマスターに伝える

 本稿では、ここで取り上げた概念や使用ツールに関する詳細な説明はしません。本稿は、今出回っている各種のツールをどう組み合わせればよいかを示す、技術的なサンプルの1つとして役立ててもらうために執筆したものです。各種のツールを組み合わせることもまた、サンプルでしかありません。ここで使用したツールはどれも多様なオプションを備えており、なかにはまったく使わないものもあるかもしれません。これらの製品1つ1つのヘルプをじっくりと読み、創意工夫を凝らして自分のビルドプロセスに役立ててください。

概要

 ビルドプロセスの主な目的は、アプリケーションを作成することです。ビルドプロセスでは、アプリケーションの部品をすべて集め、展開可能なパッケージを作成する必要があります。このプロセスを独立させることにより、信頼性と予測性の両方が向上します。

 また、ビルドプロセスでさまざまな自動処理を行うためのツールが数多く登場しています。チーム開発環境におけるビルドプロセスでは、一般には無数の開発者からコードを集めます。そのため、ビルドの際に、ユニットテストやドキュメントの作成を一度に行うことができれば理想的です。これらの作業をビルドで自動化すれば、コードの品質が上がるうえに、開発者の作業を省くことができます。

 さらに、ビルドを追跡し、ビルドプロセスについてのレポートを作成する機能も実装できます。チェック処理をトリガーするようソース管理で設定しておけば、何か所定の変更を加えてから数分以内に、ユニットテストの結果を電子メールで受け取ることができます。これにより、開発者は変更にすばやく対処できると同時に、その変更のことを意識し続けることができます。

 レポートには、コーディング標準との比較チェックの結果も含まれます。これによって、コードのレビュー時には、標準への準拠を気にすることなく、コードそのものに集中することができます。

 以下は、本稿で使用するパッケージです。それぞれのパッケージと、それらの使い方について、手短に説明します。

NAnt

 実際のビルドプロセスを作成する上で利用するプラットフォームです。NAntは、Ant for Javaをモデルとして作られたオープンソースパッケージです。本稿では、NAntは実際のビルドを引き受けるだけでなく、ビルドプロセス中に実行されるタスクのトリガーも行います。

NAntContrib

 NAnt用のアドオンタスクのコレクションであり、NAnt同様にオープンソースパッケージです。NAntContribはvss、gac、ngenに関するタスクを追加し、それ以外にも便利なタスクを数多く追加します。本稿ではNAntContribを、VSSとの通信に使用します。

NUnit

 NUnitは、オープンソースの.NET用テスティングフレームワークで、JUnit for Javaをモデルとして作られたものです。NUnitを使えば、開発者はアプリケーションのテスト設備(テストフィクスチャ)を用意し、ユニットテストを書くことができます。NUnitにはGUIとコマンドラインツールの両方が含まれているほか、アセンブリをテストする際に追加できる、さまざまな属性が備わっています。本稿ではNUnitを、クラスライブラリを対象としたユニットテストに使用します。

NDoc

 NDocは、VisualStudio .NETのXMLドキュメンテーションファイルや、VBCommentorなどのパッケージからAPIドキュメンテーションを作成するオープンソースのパッケージです。NDocを使えば、ドキュメンテーションを作成する際にさまざまなオプションを選べるほか、GUIとコマンドラインのどちらにするかを選ぶこともできます。本稿ではNDocを、アプリケーションのHTMLとchmドキュメンテーションの作成に使用します。

CruiseControl.NET

 CruiseControl.NET(以下、「CCNet」)は、CI(Continuous Integration:連続的な統合)やビルドプロセスのレポートに使われるオープンソースのパッケージです。「CI(連続的な統合)」とは、新しいファイルを入手するたびに新しいビルドを作成するという慣習を指し、これによって絶え間ないビルドプロセスが生み出されます。「ユニットテストのような作業はビルドプロセスに含める」という前提ならば、連続的な統合/継続的な統合によって、開発チームはバグを非常にすばやく発見し、修正できます(もちろん、ユニットテスト内で十分にカバーされている範囲内ならばの話です)。本稿ではCCNetを、ビルドプロセス中にトリガーとレポートを実行するために使用します。

FxCop

 FxCopは、Microsoftがコーディング標準を施行するために配布しているパッケージです。FxCopを使用すると、コードを分析し、そのコードがコーディング標準を守っているかどうかを調べるプロセスが自動化されます。これにより、同僚によるレビューセッションでは、大文字小文字の区別や命名規則違反といった問題のチェックに時間を費やすことなく、コードそのものに集中することができます。本稿ではFxCopを、アプリケーション内のコーディング標準の分析に使用します。

Visual Source Safe

 Visual Source Safe(以下「VSS」)は、Microsoftが配布しているソース管理パッケージです。一般に、VSSはVisual Studio .NETを使うときのソース管理(ソースコントロール)に使われています。VSSは非常に入手しやすく、広く使われているため、本稿でもVSSを使いますが、NAntファイル内の要素をいくつか変更すれば、本稿で紹介する概念は他の大部分のソース管理システムにも当てはまります。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • Aaron Junod(Aaron Junod)

    ソフトウェア開発とハードウェアアーキテクチャの分野で多様なバックグラウンドを持つベテランソフトウェア開発者で、ユーザーのプロジェクトから、100万ユーザーを超えるプロジェクトまで、幅広く携わっている。現在は、従業員の福利厚生に特化したトランザクション処理会社のソフトウェア設計者として、また開発者とし...

  • japan.internet.com(ジャパンインターネットコム)

    japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.c...

バックナンバー

連載:japan.internet.com翻訳記事

もっと読む

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5