2011-05-10 23 views
11

En TFS 2010 tengo elementos de trabajo con conjuntos de cambios vinculados. Puedo generar una consulta que informe los elementos de trabajo que estoy buscando. Ahora quiero hacer una consulta de Elementos de trabajo y enlaces directos que incluye todos los conjuntos de cambios vinculados a estos elementos de trabajo. En el editor de consultas no puedo encontrar ningún medio para especificar un conjunto de cambios como el elemento vinculado. ¿Son elementos de trabajo el único resultado posible de una consulta?¿Cómo puedo consultar elementos de trabajo y sus conjuntos de cambios vinculados en TFS?

Respuesta

12

Acabo de asistir al seminario web Mejorando el desarrollador y la colaboración del probador donde hice mi pregunta. El instructor Ken Arneson de alpi.com confirmó que los enlaces a los conjuntos de cambios no son informables a través del Editor de consultas en TFS Team Explorer. Para acceder a los enlaces a conjuntos de cambios, se deben usar otras herramientas para acceder al "Cubo". Tengo más para aprender

+1

eh gads que es una mierda, estoy buscando hacer algo similar, quiero ver los elementos de trabajo asociados con los conjuntos de cambios en un rango de fechas determinado. Voy a comentar o responder si encuentro algo útil. – BlackICE

+0

Meh, fue muy útil para mí, simplemente para ver cómo acceder a las consultas ... – anhoppe

21

Una opción es usar la API TFS como el siguiente fragmento.

var projectCollection = new TfsTeamProjectCollection(
    new Uri("http://localhost:8080/tfs"), 
    new UICredentialsProvider()); 
projectCollection.EnsureAuthenticated(); 
var workItemStore = projectCollection.GetService<WorkItemStore>(); 
var versionControlServer = projectCollection.GetService<VersionControlServer>(); 
var artifactProvider = versionControlServer.ArtifactProvider; 
var project = workItemStore.Projects["Test01.MSFAgile.v5"]; 
var teamQueryFolder = project.QueryHierarchy["Team Queries"] as QueryFolder; 
var query = teamQueryFolder["My Tasks"]; 
var queryDefinition = workItemStore.GetQueryDefinition(query.Id); 
var variables = new Dictionary<string, string> 
{ 
    {"project", query.Project.Name} 
}; 
var workItemCollection = workItemStore.Query(
    queryDefinition.QueryText, 
    variables); 
foreach (WorkItem workItem in workItemCollection) 
{ 
    Console.WriteLine("WI: {0}, Title: {1}", workItem.Id, workItem.Title); 
    foreach (var changeset in 
     workItem.Links 
      .OfType<ExternalLink>() 
      .Select(link => artifactProvider 
       .GetChangeset(new Uri(link.LinkedArtifactUri)))) 
    { 
     Console.WriteLine(
      "CS: {0}, Comment: {1}", 
      changeset.ChangesetId, 
      changeset.Comment); 
    } 
} 
9

Si lo hace una consulta externa e incluir recuento link> 0 En realidad, esto le dará todos los elementos de trabajo que tienen conjuntos de cambios asociados a ella.

+0

¡Oye, eso fue lo suficientemente simple! Mi requisito era solo auditar los requisitos sin conjuntos de cambios, ¡así que esto hace lo que necesito! – StoneJedi

+1

Tenga en cuenta que los resultados de la prueba también incrementarán el recuento de enlaces externos, por lo que este puede no ser el mejor enfoque si utiliza TFS para la ejecución de la prueba. – Technobabble

Cuestiones relacionadas