 |

|
チーム開発ここまできた、個人からチームの生産性向上へ |
第4回:自動ビルドによるプログラムの品質・保守の有効性
著者:日本ユニシス 井上 浩司 2006/1/24
|
|
|
前のページ 1 2 3 4 次のページ
|
 |
VS2005 TFSの自動ビルドの概要
|
ここからは、VS2005 TFSを使った自動ビルドで何ができるのか、そしてどのような設定が必要なのかを紹介していきます。
先ほど解説した通り、自動ビルドにはビルドツールと自動テストツールが必須です。Visual Studio 2005ではそれぞれ、モジュールをビルドするためのビルドツール(MSBuild)と、ユニットテスト機能があります。
これらを活用し、Visual Studio 2005のメニューからボタン1つですべてのテストが自動で行えることは「Visual Studio 2005を活用した、テスト駆動開発とソフトウェア品質向上アプローチ」で解説しておりますので、そちらをご参考ください。
|
自動化される作業
|
VS2005 TFSが自動化してくれる作業を表2に示します。
- ビルド
- ユニットテスト
- 静的コード分析
- 自動ビルドの結果の電子メールでの送信
- ビルドエラー時の作業項目の自動生成
表2:VS2005 TFSによって自動化される作業
|
自動ビルドの設定
|
次に、自動ビルドを設定する手順について解説します。
チームエクスプローラの「Team Builds → New Team Build Type」を選択し、ウィザードが立ち上がったら表3の1から4までの項目を入力します。
- 1. team build typeの指定
- 2. ビルド対象のソリューションとワークスペースの指定
- 3. ビルドの構成(Release/Debug)とプラットフォームの指定
- 4. その他環境の指定
-
- ビルドを実施するマシン
- ビルドを行うためのソースコードをチェックアウトする(aで指定したマシンのローカルフォルダ)
- ビルド結果を格納する共有フォルダ
表3:自動ビルドの設定項目

図2:自動ビルドの設定ファイルの格納場所 (画像をクリックすると別ウィンドウに拡大図を表示します)
なお、このウィザードで設定した項目はソースコード管理のルートに生成される「TeamBuildTypes」ディレクトリの下のTFSBuild.projファイルにXML形式で記述されますので、後で編集することができます。
このXMLの設定ファイルは当然のことながら、ソースコード管理システムにより管理されています。変更するためには、チェックアウトして編集後にチェックインすることになります。どんな変更を行ったのかを後で確認することもできます。誰かがおかしな設定を行った場合でも、すぐに元に戻すことができます。
|
自動ビルドの実行とスケジューリング
|
チームエクスプローラの「Team Builds → Build Team Project プロジェクト名」を選択すれば、自動ビルドを実行することができます。
なお、自動ビルドをスケジュールするような機能はないようです。ですが、コマンドラインツール(tfsbuild.exe)を利用し、Windows OS標準のタスクスケジューラの機能に登録することで決まった時刻に自動ビルドを走らせることができるようになります。
例えば、VS2005 TFSのサーバが「tricolore」というマシン名で、「TestProject」というチームプロジェクト名で、TeamBuildTypeが「Test3」という構成であった場合、tfsbuild.exeを利用し、コマンドラインで自動ビルドを実行することができます。なお、以下の例はビルドに失敗した場合の標準出力の内容です。
tfsbuild.exeの実行結果
|
c:/>tfsbuild tricolore TestProject Test3
(省略)
Build number: Test3_20060109.1
Initializing build
Getting sources
Compiling sources
Compiling WindowsApplication1.sln for Any CPU/Release
Compiling WindowsApplication1.csproj
Getting changesets
Copying log files to drop location
Creating work item
Failed
c:/>
|
 |
前のページ 1 2 3 4 次のページ
|

|
|

|
著者プロフィール
日本ユニシス株式会社 井上 浩司
総合技術研究所 所属
オープンミドルウェアMIDMOST for .NETの開発や、MSCSを補完するACABの開発に従事しています。
|
|
|
|