Esta documentación está archivada y no tiene mantenimiento.

CreateNewWorkItem (Tarea)

Actualización: noviembre 2007

De forma predeterminada, Team Foundation Build crea un nuevo elemento de trabajo si detecta un error de compilación o un error del análisis estático. La tarea CreateNewWorkItem crea un nuevo elemento de trabajo del tipo especificado y con el título y la descripción especificados. El campo Microsoft.VSTS.Build.FoundIn está establecido en el valor de la propiedad BuildId y cualquier valor de campo personalizado especificado en la propiedad WorkItemFieldValues se establece tal como se ha especificado.

Propiedad

Descripción

TeamFoundationServerUrl

Especifica la dirección URL del servidor de Team Foundation Server. Por ejemplo, http://MiServidor:8080.

BuildNumber

Especifica el número de versión de compilación de Team Foundation Build.

BuildURI

Especifica el identificador URI de la compilación.

Description

Especifica la descripción del elemento de trabajo. El valor predeterminado de esta propiedad se especifica en el archivo TFSBuild.proj de la definición de compilación como se indica a continuación:

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

TeamProject

Especifica el nombre del proyecto de equipo.

Title

Especifica el título del elemento de trabajo.

WorkItemFieldValues

Especifica una lista de nombres y valores de campo para el elemento de trabajo creado.

Especifique estos valores como una lista de pares de nombre y valor separados por punto y coma. Por ejemplo, si desea establecer priority=1, severity=2 y rank=0, defina la propiedad MSBuild como se indica en el fragmento de código XML siguiente:

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

WorkItemType

Especifica el tipo de elemento de trabajo. Por ejemplo, "bug".

Debe ser un tipo de elemento de trabajo válido. Si no se define esta propiedad, el tipo de elemento de trabajo predeterminado es "error".

La tarea CreateNewWorkItem se define en Microsoft.TeamFoundation.Build.Tasks.VersionControl.dll. El archivo Microsoft.TeamFoundation.Build.targets contiene una instancia de la tarea CreateNewWorkItem que Team Foundation Build utiliza como implementación predeterminada del destino CreateWorkItem. También puede personalizar el proceso de compilación mediante la definición de una instancia diferente de la tarea CreateNewWorkItem para una definición de compilación en el archivo TFSBuild.proj.

La carpeta <raíz>:\Archivos de programa\MSBuild\Microsoft\VisualStudio\v9.0\TeamBuild en el equipo de Team Foundation Build contiene el archivo Microsoft.TeamFoundation.Build.targets.

Tipos de elemento de trabajo válidos

Cada proyecto de equipo se crea con una metodología determinada. En Team Foundation, la metodología de MSF for Agile Software Development define los tipos de elemento de trabajo Error, Calidad de Servicio, Riesgo, Escenario y Tarea. La metodología de MSF for CMMI for Process Improvement define los tipos de elemento de trabajo Error, Solicitud de cambio, Problema, Requisito, Revisión, Riesgo, Escenario y Tarea. También puede definir su propio tipo de elemento de trabajo personalizando una definición del tipo de elemento de trabajo existente. Para obtener más información, vea Personalizar tipos de elemento de trabajo.

Un tipo de elemento de trabajo que se define para la tarea CreateNewWorkItem debe ser válido para la integración de generación y debe definir un campo FoundIn. Para obtener más información, vea Agregar campos de integración a tipos de elementos de trabajo.

Comportamiento predeterminado

Si no define la propiedad WorkItemType, la tarea CreateNewWorkItem utiliza el tipo de elemento de trabajo Error.

Notas acerca de la propiedad WorkItemFieldValues

WorkItemFieldValues se utiliza para especificar los valores de campo del elemento de trabajo como una lista de pares de nombre y valor separados por punto y coma. Si especifica un nombre de campo que no existe, se omite el par de nombre y valor correspondiente. Por ejemplo, si desea establecer el campo de gravedad (severity) en 1, pero la gravedad no se define en el tipo de elemento de trabajo, se omite la entrada.

Si el elemento de trabajo que define tiene campos obligatorios sin valores predeterminados, debe proporcionar los valores en la propiedad WorkItemFieldValues. Por ejemplo, el tipo de elemento de trabajo Defecto tiene un campo obligatorio que se denomina Prioridad. Los valores de Prioridad son 0, 1, 2 ó 3 y no se especifica ningún valor predeterminado. Se produce un error en la tarea si especifica un valor no válido para un campo obligatorio. Por ejemplo, si establece la Prioridad en 5, la tarea CreateNewWorkItem produce un error.

No puede especificar los campos de CreatedBy y State del elemento de trabajo. El campo CreatedBy es de sólo lectura. Se establece mediante el modelo de objetos (OM) de seguimiento de elementos de trabajo. El campo State no se puede especificar porque el OM de seguimiento de elementos de trabajo no puede tener varios estados de inicio.

El ejemplo siguiente establece WorkItemFieldValues en el archivo TfsBuild.proj para el elemento de trabajo creado al producirse un error de generación.

<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>

El ejemplo siguiente utiliza la tarea CreateNewWorkItem en el archivo TfsBuild.proj para crear un elemento de trabajo personalizado al producirse un error de generación.

<!-- 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>

El ejemplo siguiente muestra la instancia predeterminada de la tarea CreateNewWorkItem definida en el archivo Microsoft.TeamFoundation.Build.targets.

<CreateNewWorkItem
    TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
    BuildUri="$(BuildURI)"
    BuildNumber="$(BuildNumber)"
    Description="$(WorkItemDescription)"
    TeamProject="$(TeamProject)"
    Title="$(WorkItemTitle)"
    WorkItemFieldValues="$(WorkItemFieldValues)"
    WorkItemType="$(WorkItemType)"
    ContinueOnError="true" />
Mostrar: