in src/Adapter/MSTest.CoreAdapter/Extensions/TestCaseExtensions.cs [74:153]
internal static UnitTestElement ToUnitTestElement(this TestCase testCase, string source)
{
var isAsync = (testCase.GetPropertyValue(Constants.AsyncTestProperty) as bool?) ?? false;
var testClassName = testCase.GetPropertyValue(Constants.TestClassNameProperty) as string;
var declaringClassName = testCase.GetPropertyValue(Constants.DeclaringClassNameProperty) as string;
var name = testCase.GetTestName(testClassName);
TestMethod testMethod;
if (testCase.ContainsManagedMethodAndType())
{
testMethod = new TestMethod(testCase.GetManagedType(), testCase.GetManagedMethod(), testCase.GetHierarchy(), name, testClassName, source, isAsync);
}
else
{
testMethod = new TestMethod(name, testClassName, source, isAsync);
}
var dataType = (DynamicDataType)testCase.GetPropertyValue(Constants.TestDynamicDataTypeProperty, (int)DynamicDataType.None);
if (dataType != DynamicDataType.None)
{
var data = testCase.GetPropertyValue<string[]>(Constants.TestDynamicDataProperty, null);
testMethod.DataType = dataType;
testMethod.SerializedData = data;
}
testMethod.DisplayName = testCase.DisplayName;
if (declaringClassName != null && declaringClassName != testClassName)
{
testMethod.DeclaringClassFullName = declaringClassName;
}
UnitTestElement testElement = new UnitTestElement(testMethod)
{
IsAsync = isAsync,
TestCategory = testCase.GetPropertyValue(Constants.TestCategoryProperty) as string[],
Priority = testCase.GetPropertyValue(Constants.PriorityProperty) as int?,
DisplayName = testCase.DisplayName
};
if (testCase.Traits.Any())
{
testElement.Traits = testCase.Traits.ToArray();
}
var cssIteration = testCase.GetPropertyValue<string>(Constants.CssIterationProperty, null);
if (!string.IsNullOrWhiteSpace(cssIteration))
{
testElement.CssIteration = cssIteration;
}
var cssProjectStructure = testCase.GetPropertyValue<string>(Constants.CssProjectStructureProperty, null);
if (!string.IsNullOrWhiteSpace(cssIteration))
{
testElement.CssProjectStructure = cssProjectStructure;
}
var description = testCase.GetPropertyValue<string>(Constants.DescriptionProperty, null);
if (!string.IsNullOrWhiteSpace(description))
{
testElement.Description = description;
}
var workItemIds = testCase.GetPropertyValue<string[]>(Constants.WorkItemIdsProperty, null);
if (workItemIds != null && workItemIds.Length > 0)
{
testElement.WorkItemIds = workItemIds;
}
var deploymentItems = testCase.GetPropertyValue<KeyValuePair<string, string>[]>(Constants.DeploymentItemsProperty, null);
if (deploymentItems != null && deploymentItems.Length > 0)
{
testElement.DeploymentItems = deploymentItems;
}
testElement.DoNotParallelize = testCase.GetPropertyValue(Constants.DoNotParallelizeProperty, false);
return testElement;
}