Azure devops 如何在Azure DevOps中获取工作项的链接项

Azure devops 如何在Azure DevOps中获取工作项的链接项,azure-devops,Azure Devops,我正在使用Azure API和VisualStudio.Services.Client 我的目标是获得与用户故事相关联的测试用例列表,到目前为止,我在这里: VssConnection connection = new VssConnection(new Uri("https://{myOrg}.visualstudio.com"), new VssBasicCredential("UserName","SuperSecretPassword"));

我正在使用Azure API和VisualStudio.Services.Client

我的目标是获得与用户故事相关联的测试用例列表,到目前为止,我在这里:

 VssConnection connection = new VssConnection(new Uri("https://{myOrg}.visualstudio.com"),
            new VssBasicCredential("UserName","SuperSecretPassword"));

        WorkItemTrackingHttpClient witClient = connection.GetClient<WorkItemTrackingHttpClient>();

        var ticket =  witClient.GetWorkItemAsync(1234).Result;
VssConnection connection=newvssconnection(新Uri(“https://{myOrg}.visualstudio.com”),
新的VssBasicCredential(“用户名”、“超级保密密码”);
WorkItemTrackingTTPClient witClient=connection.GetClient();
var ticket=witClient.GetWorkItemAsync(1234).Result;
这将返回我的用户故事

问题: 我想找到与此相关的任何链接项以找到我的测试用例,但看不到通过UI(因此我可以调用查询)或直接通过API来实现这一点的任何方法


任何帮助都将不胜感激

我个人喜欢使用WIQL查询从Azure DevOps检索数据。它非常灵活,可以在任何情况下使用

下面的示例是针对Azure DevOps小部件制作的。(javascript)

您应该记住,中的链接类型在此查询中很重要

您可以在此处找到有关关系类型的详细信息:

在这里你可以找到更多关于

在这里,您可以找到有关


如果您在Azure DevOps中有一个查询,并且希望将其导出为WIQL查询,您可以使用此

非常感谢,这太棒了!我在“fromWorkItemLinks”上出错。你有没有关于如何获取表名的链接或指南,或者资源管理器?我在答案中删除了一个
,这应该可以解决错误。除此之外,我在回答中添加了Azure DevOps marketplace扩展。您可以使用它轻松地更改和构建WIQL查询。类似的问题是,在WorkItemsTracking API中使用WorkItems端点,并将
expand
参数设置为
Relationships
:(在您使用的客户端中找到对应的方法应该相当简单)。我之所以链接到它,是因为它避免了使用WIQL,而WIQL对人们来说可能更可取,不过缺点是,您需要过滤结果,使其仅链接到测试用例,然后执行另一个查询来提取这些项目的目标。所以也许WIQL更好。。。
var wiqlQuery = `
SELECT
    [System.Id],
    [System.Title],
    [System.WorkItemType]
FROM workitemLinks
WHERE
    (
        [Source].[System.TeamProject] = @project
        AND [Source].[System.WorkItemType] = 'User Story'
    )
    AND (
        [System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward'
    )
    AND (
        [Target].[System.TeamProject] = @project
        AND [Target].[System.WorkItemType] = 'Test Case'
    )
MODE (Recursive)`;

witClient.queryByWiql({ query: wiqlQuery }).then(function(result){
    // Your Code
});