Team Foundation Server の作業項目にいろいろな問い合わせも登録して、ナレッジベースとして活用したいと考えたのですが、どうもこれにしっくりくる作業項目がありません。そこで、カスタマイズして新しい作業項目を追加してみました。
最終的には問い合わせに相応しい入力項目やワークフローを設定すべきですが、まずはタスクを単純にコピーして「問い合わせ」を登録してみました。
環境について
サーバー環境
Windows 2012 R2 Datacenter + Team Foundation Server 2015 + SQL Server 2012 Standard
クライアント環境
Windows 10 Enterprise + Visual Studio 2015 Enterprise
手順
- コマンドプロンプトを起動して、以下のディレクトリに移動する
cd %programfiles(x86)%\Microsoft Visual Studio 14.0\Common7\IDE
32ビット版の場合は、%programfiles(x86)% でなく %programfiles% になります。
- まずはどのような作業項目(WIT)があるかリストアップ
witadmin コマンドで listwith オプションと以下のように、Team Foundation Server の URL、プロジェクト名を指定して実行します。
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE>witadmin listwitd /collection:http://tfs:8080/tfs/DefaultCollection /p:SampleProject
タスク
バグ
コード レビュー要求
コード レビュー応答
エピック
機能
フィードバック要求
フィードバック応答
懸案事項
プロダクト バックログ項目
共有ステップ
共有パラメーター
テスト ケース
テスト計画
テスト スイート
結構いろいろ登録されていますね。そしてお目当てのタスクがありました!
- 作業項目(WIT)のエクスポート
さて、さっそくエクスポートすべく、以下のコマンドを実行したらファイルに出力されるのではなく、そのままずらずらと標準出力されました。
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE>witadmin exportwitd /collection:http://win-i2jhb2g5eop:8080/tfs/DefaultCollection /p:SandboxProject /n:タスク
<?xml version="1.0" encoding="shift_jis"?>
<witd:WITD application="Work item type editor" version="1.0" xmlns:witd="http://schemas.microsoft.com/VisualStudio/2008/workitemtracking/typedef">
<WORKITEMTYPE name="タスク">
<DESCRIPTION>実行する必要がある作業をトラックします。</DESCRIPTION>
<FIELDS>
<FIELD name="イテレーション パス" refname="System.IterationPath" type="TreePath" reportable="dimension" />
<FIELD name="イテレーション ID" refname="System.IterationId" type="Integer" />
(中略)
</Layout>
</FORM>
</WORKITEMTYPE>
</witd:WITD>
- これではお話しにならないので以下のようにファイルに出力しました。
witadmin exportwitd /collection:http://tfs:8080/tfs/DefaultCollection /p:SampleProject /n:タスク /e:utf-8 > C:\Temp\Task.xml
ここでは念の為に、文字コードとして /e オプションで UTF-8 を指定しました。
これでバッチリファイルに出力されました。
- 作業項目のカスタマイズ
出力したファイルを適当なテキストエディタで開きます。眺めるとなんとなくわからなくないのですが、いきなりバリバリとカスタマイズするのは厳しそうです。そこで、まずは3行目の以下の記述
<WORKITEMTYPE name="タスク">
これを以下のように修正して保存しました。
<WORKITEMTYPE name="問い合わせ">
また、念のためファイル名も Task.xml から Question.xml に変更しておきました。
- 最低限のカスタマイズ(というレベルじゃないけど)ができたので、さっそくこれを Team Foundation Server にインポート。と行きたいのですが、構文をチェックする機能がちゃんと用意されていました。先ほどと同じにように witadmin コマンドを使います。
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE>witadmin importwitd /collection:http://tfs:8080/tfs/DefaultCollection /p:SampleProject /f:C:\Temp\Question.xml /e:utf-8 /v
作業項目の種類は有効です。
/v オプションを指定することで、インポートはせず検査だけをしてくれます。「作業項目の種類は有効です」と表示されたので問題ないようです。
- あとは、/v オプションを外してインポートします。
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE>witadmin importwitd /collection:http://tfs:8080/tfs/DefaultCollection /p:SampleProject /f:C:\Temp\Question.xml /e:utf-8
作業項目の種類のインポートが完了しました。