CreateNewWorkItem タスク
更新 : 2007 年 11 月
既定では、Team Foundation ビルドがコンパイル エラーまたはスタティック分析の失敗を検出すると、新しい作業項目が作成されます。CreateNewWorkItem タスクは、指定の型、および指定のタイトルと説明で新しい作業項目を作成します。Microsoft.VSTS.Build.FoundIn フィールドは BuildId プロパティの値に設定され、WorkItemFieldValues プロパティで指定される任意のカスタム フィールド値は、指定されたとおりに設定されます。
パラメータ
プロパティ |
説明 |
---|---|
TeamFoundationServerUrl |
Team Foundation Server の URL を指定します。たとえば、http://MyServer:8080 と指定します。 |
BuildNumber |
Team Foundation ビルドのビルド番号を指定します。 |
BuildURI |
ビルド URI を指定します。 |
Description |
作業項目の説明を指定します。このプロパティの既定値は、次に示すように、ビルド定義の TFSBuild.proj ファイルに指定されています。
|
TeamProject |
チーム プロジェクトの名前を指定します。 |
Title |
作業項目のタイトルを指定します。 |
WorkItemFieldValues |
作成される作業項目のフィールド名と値のリストを指定します。 これらの値は、名前と値のペアをセミコロンで区切って指定します。たとえば、priority=1、severity=2、および rank=0 を指定する場合は、MSBuild プロパティを次のように XML で定義します。
|
WorkItemType |
作業項目の種類を指定します。たとえば、"bug" と指定します。 これは、作業項目の有効な種類であることが必要です。このプロパティが定義されていない場合、作業項目の既定の種類は "bug" です。 |
解説
CreateNewWorkItem タスクは、Microsoft.TeamFoundation.Build.Tasks.VersionControl.dll で定義されます。Microsoft.TeamFoundation.Build.targets ファイルには、Team Foundation ビルドが CreateWorkItem を対象に既定の実装として使用する CreateNewWorkItem タスクのインスタンスが含まれています。また、ビルド定義に対する CreateNewWorkItem タスクのインスタンスを TfsBuild.proj ファイルで別途定義して、ビルド処理をカスタマイズすることもできます。
Microsoft.TeamFoundation.Build.targets ファイルは、Team Foundation ビルド コンピュータの <root>:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamBuild フォルダに保存されます。
有効な作業項目の種類
各チーム プロジェクトは、特定のメソドロジで作成されます。Team Foundation では、MSF for Agile Software Development メソドロジによって、バグ、サービス品質、リスク、シナリオ、およびタスクという作業項目の種類が定義されます。CMMI for Process Improvement メソドロジでは、バグ、変更要求、懸案事項、要件、校閲、リスク、シナリオ、タスクなどの作業項目の種類が定義されます。既存の作業項目の種類の定義をカスタマイズすることによって、独自の作業項目の種類を定義することもできます。詳細については、「作業項目の種類のカスタマイズ」を参照してください。
CreateNewWorkItem タスク用に定義される作業項目の種類は、ビルドの統合に対して有効であり、FoundIn フィールドを定義する必要があります。詳細については、「作業項目の種類への統合フィールドの追加」を参照してください。
既定の動作
WorkItemType プロパティを未定義のままにすると、CreateNewWorkItem タスクは作業項目の種類として "Bug" を使用します。
WorkItemFieldValues プロパティに関する注意
WorkItemFieldValues では、作業項目のフィールド値を、名前と値のペアをセミコロンで区切ったリストで指定します。存在しないフィールド名が指定された場合、対応する <name, value> ペアは無視されます。たとえば、severity フィールドを 1 に設定したいが、severity が作業項目の種類で定義されていない場合、入力は無視されます。
定義する作業項目に、既定値を持たない必須フィールドが含まれる場合は、WorkItemFieldValues プロパティで値を指定する必要があります。たとえば、"Defect" という作業項目の種類には "Priority" という名前の必須フィールドがあります。Priority の値は 0、1、2、または 3 であり、既定値は指定されていません。Priority に 5 を設定するなど、必須フィールドに無効な値を指定すると、CreateNewWorkItem タスクは失敗します。
作業項目の CreatedBy フィールドと State フィールドは指定できません。CreatedBy フィールドは読み取り専用であり、作業項目トラッキングのオブジェクト モデル (OM) で設定されます。作業項目トラッキング OM は複数の開始状態を持つことができないため、State フィールドを指定できません。
使用例
以下の例では、ビルドの失敗で作成された作業項目について、TfsBuild.proj ファイル内に WorkItemFieldValues を設定しています。
<WorkItemFieldValues>Area Path=$(AreaPath);Iteration Path=$(IterationPath);Severity=1;Priority=0;Symptom=build break;Steps To Reproduce=Start the build using Team Build;Source=Development;How Found=Build Break;Assigned To=Jim Wilson</WorkItemFieldValues>
以下の例では、TfsBuild.proj ファイル内の CreateNewWorkItem タスクを使用して、ビルドの失敗時にカスタム作業項目を作成しています。
<!-- Add the UsingTask to the top of the TFsBuild.proj file after the schema definition-->
<UsingTask TaskName="Microsoft.TeamFounadtion.Build.Tasks.CreateNewWorkItem" AssemblyFile="$(TeamBuildRefPath)\Microsoft.TeamFoundation.Build.Tasks.VersionControl.dll" />
<!-- Add the following XML after the closing </ItemGroup>-->
<!-- and before the closing </Project>-->
</ItemGroup>
<PropertyGroup> <BuildNumber>BuildType_Date.1</BuildNumber> <WorkItemFieldValues>Priority=1:Severity=2</WorkItemFieldValues> <WorkItemType>Bug</WorkItemType> </PropertyGroup> <TargetName="CreateWorkItem"> <CreateNewWorkItem BuildNumber="$(BuildNumber)" BuildURi="$(BuildURI)" Description="The CreateNewWorkItem task created this bug." TeamProject"MyTeamProject" TeamFoundationServerUrl="http://MyTFServer.8080" Title="Bug in $(BuildNumber)" WorkItemFieldValues="$(WorkItemFieldValues)" WorkItemType="$(WorkItemType)" /> </Target>
</Project>
次のサンプルは、Microsoft.TeamFoundation.Build.targets ファイルで定義されている CreateNewWorkItem タスクの既定のインスタンスを 示しています。
<CreateNewWorkItem
TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
BuildUri="$(BuildURI)"
BuildNumber="$(BuildNumber)"
Description="$(WorkItemDescription)"
TeamProject="$(TeamProject)"
Title="$(WorkItemTitle)"
WorkItemFieldValues="$(WorkItemFieldValues)"
WorkItemType="$(WorkItemType)"
ContinueOnError="true" />
参照
処理手順
概念
Team Foundation ビルドの構成ファイルについて