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 ファイルに指定されています。

<!-- Description for the work item created on build failure -->
    <DescriptionText>This work item was created by Team Build on a build failure.</DescriptionText>

TeamProject

チーム プロジェクトの名前を指定します。

Title

作業項目のタイトルを指定します。

WorkItemFieldValues

作成される作業項目のフィールド名と値のリストを指定します。

これらの値は、名前と値のペアをセミコロンで区切って指定します。たとえば、priority=1、severity=2、および rank=0 を指定する場合は、MSBuild プロパティを次のように XML で定義します。

<PropertyGroup>
<WorkItemFieldValues>
   priority =1; severity=2; rank =0
</WorkItemFieldValues>
</PropertyGroup>

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 ビルドの構成ファイルについて

Team Foundation ビルドのタスク

その他の技術情報

Team Foundation ビルドのカスタマイズ

Team Foundation ビルドのターゲット、タスク、およびプロパティ

作業項目の種類のスキーマ リファレンス