如何将测试方法与测试用例相关联?

Ian*_*man 1 unit-testing visual-studio azure-devops visual-studio-2017

我无法在测试资源管理器中(“关联到测试用例”选项变灰)或通过 MTM 或 VSTS 网站将测试方法与测试用例相关联。我根本找不到将测试与自动化测试的测试用例相关联的方法。

我正在使用 .NET 核心应用程序 1.1,使用 MSTest 的 ASP.NET(尽管我也尝试过 Xunit,但无济于事)。即使是始终通过的基本测试用例也无法关联。

在 MTM 中,我创建了一个将自动化状态设置为“计划”的测试计划。

在 VSTS 中,我有一个使用 Git 存储库的项目,其中创建了一个 CI 构建,该构建成功地发现、运行和报告测试。

我找不到将这些特定测试与测试运行相关联的位置。我怎样才能做到这一点?

sta*_*SFT 5

请参考以下步骤将测试方法关联到测试用例:

  1. 安装 MTM 2017(运行 VS 2017 install app (vs_Enterprise.exe)>Modify)

在此处输入图片说明

  1. 打开 VS 2017>Tools>Options>Work Items>General> 选择 V​​isual Studio (Compatibility mode) for Open work items in:

在此处输入图片说明

  1. 在 VS 2017 中打开您的测试项目并构建
  2. 打开团队资源管理器并连接到您的团队项目
  3. 在“搜索工作项”框中键入测试用例 ID > 按 Enter 打开测试用例
  4. 选择关联自动化选项卡,然后单击...
  5. 选择测试方法 > 确定
  6. 保存测试用例工作项

另一种方法是您可以通过更新字段 REST API 将测试方法与测试用例相关联。

例如:

PATCH 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"
  }
]
Run Code Online (Sandbox Code Playgroud)

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

Guid g = Guid.NewGuid();
string s = g.ToString();
Run Code Online (Sandbox Code Playgroud)