in src/dotnet/Rider.Plugins.TrxPlugin/TrxParser.cs [104:160]
public static void AddDefinitions(XElement node, List<UnitTestResult> results, XNamespace defaultNamespace)
{
foreach (var element in node.Elements())
{
if (defaultNamespace.ToString() == "http://microsoft.com/schemas/VisualStudio/TeamTest/2010")
{
if (element.Name.LocalName == "UnitTest")
{
var serializer = new XmlSerializer(typeof(UnitTest),
"http://microsoft.com/schemas/VisualStudio/TeamTest/2010");
var startNode = new XElement(element);
using var reader = startNode.CreateReader();
var unitTest = (UnitTest)serializer.Deserialize(reader);
foreach (var result in results)
{
if (result.TestId == unitTest?.Id)
{
result.Definition = unitTest;
}
}
}
else
{
AddDefinitions(element, results, defaultNamespace);
}
}
else
{
if (element.Name.LocalName == "tests")
{
foreach (var test in element.Elements("value"))
{
var testId = test.Element("id")?.Element("id")?.Value;
var className = test.Element("testMethod")?.Element("className")?.Value;
foreach (var result in results)
{
if (result.TestId == testId)
{
result.Definition = new UnitTest()
{
TestMethod = new TestMethod()
{
ClassName = className
},
Id = testId
};
}
}
}
}
else
{
AddDefinitions(element, results, defaultNamespace);
}
}
}
}