How do I associate test methods to test cases?

2019-01-15 04:42发布

问题:

I am unable to associate test methods to test cases in the Test Explorer (the "Associate to Test Case" option is greyed out), or via MTM, or the VSTS website. I simply cannot find a way to associate tests to the test cases for automated testing.

I am using .NET core app 1.1, ASP.NET using MSTest (though I have tried Xunit as well, to no avail). Even a basic test case that always passes cannot be associated.

In MTM, I have created a test plan that has the Automation Status set to "Plan".

In VSTS, I have a project using a Git repository, in which I have a CI build created that successfully discovers, runs and reports the tests.

I cannot find where to associate these specific tests to test runs. How may I accomplish this?

回答1:

Refer to these steps to associate test method to test case:

  1. Install MTM 2017 (Run VS 2017 install app (vs_Enterprise.exe)>Modify)

  1. Open VS 2017>Tools>Options>Work Items>General> Select Visual Studio (Compatibility mode) for Open work items in:

  1. Open your test project in VS 2017 and build
  2. Open Team explorer and connect to your team project
  3. Type test case id in Search Work items box> Press enter to open test case
  4. Select Associated Automation tab and click …
  5. Select a test method > OK
  6. Save test case work item

Another way is that you can associate the test method with test case through Update a field REST API.

For example:

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

Content-Type: application/json-patch+json

Body:

[
  {
    "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"
  }
]

The AutomatedTestId is a Guid value, so you can generate a new Guid by using this C# code:

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