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?
Refer to these steps to associate test method to test case:
- Install MTM 2017 (Run VS 2017 install app (vs_Enterprise.exe)>Modify)
- Open VS 2017>Tools>Options>Work Items>General> Select Visual Studio (Compatibility mode) for Open work items in:
- Open your test project in VS 2017 and build
- Open Team explorer and connect to your team project
- Type test case id in Search Work items box> Press enter to open test case
- Select Associated Automation tab and click …
- Select a test method > OK
- 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();