如何以编程方式在 VSTS 中创建测试用例?

How to create test cases in VSTS in a programmatic manner?

我有一个使用 jasmine 框架编写的客户端 (angular) 应用程序的单元测试项目。

在 C# 单元测试项目中,可以在 visual studio 测试资源管理器中 link 每个测试方法和一个测试用例。

由于无法在使用 jasmine 框架编写的客户端 (angular) 应用程序的单元测试项目中对测试 methods/suites 实现相同的效果,因此我正在寻找创建的可能性通过编程在 VSTS 中创建测试用例的工具。并将每个客户端单元测试方法映射到 VSTS 中的测试用例。

任何人都可以帮助我解决 API 的问题以及如何做到这一点的想法吗?

用于测试管理的 REST API 相当广泛,并且在 VSTS 文档网站上有清楚的记录。

API分为两部分:

  1. Test Management API 用于创建测试计划和测试套件以及 link 项。
  2. Work Item API 用于创建和更新测试用例(本质上只是一个工作项)。

使用 REST API 来做:

补丁https://[account].visualstudio.com/DefaultCollection/_apis/wit/workitems/[testcaseid]?api-version=1.0

内容类型:application/json-patch+json

正文:

[
  {
    "op": "add",
    "path": "/fields/Microsoft.VSTS.TCM.AutomatedTestName",
    "value": "[namespace.classname.methodname (e.g. UnitTestProject1.UnitTest1.TestMethod2)]"
  },
  {
    "op": "add",
    "path": "/fields/Microsoft.VSTS.TCM.AutomatedTestStorage",
    "value": "[assembly name(e.g. unittestproject1.dll)"
  },
  {
    "op": "add",
    "path": "/fields/Microsoft.VSTS.TCM.AutomatedTestId",
    "value": "[guid id]"
  },
  {
    "op": "add",
    "path": "/fields/Microsoft.VSTS.TCM.AutomatedTestType",
    "value": "Unit Test"
  },
   {
    "op": "add",
    "path": "/fields/Microsoft.VSTS.TCM.AutomationStatus",
    "value": "Automated"
  }
]

AutomatedTestId 是一个 Guid 值,因此您可以使用此 C# 代码生成一个新的 Guid:

Guid g = Guid.NewGuid();
string s = g.ToString();

参考