in src/dotnet/Rider.Plugins.TrxPlugin/TrxParser.cs [53:102]
public static List<UnitTestResult> ParseResults(XElement node, XNamespace defaultNamespace)
{
var results = new List<UnitTestResult>();
foreach (var result in node.Elements())
{
if (result.Name.LocalName == "UnitTestResult")
{
UnitTestResult unitTestResult;
if (defaultNamespace.ToString() == "http://microsoft.com/schemas/VisualStudio/TeamTest/2010")
{
var serializer = new XmlSerializer(typeof(UnitTestResult),
defaultNamespace.ToString());
var startNode = new XElement(result);
using var reader = startNode.CreateReader();
unitTestResult = (UnitTestResult)serializer.Deserialize(reader);
if (unitTestResult == null)
{
continue;
}
}
else
{
unitTestResult = new UnitTestResult()
{
TestId = result.Element("id")?.Element("testId")?.Element("id")?.Value,
TestName = result.Element("testName")?.Value,
Outcome = ErrorCodeToStatus(int.Parse(result.Element("outcome")?.Element("value__")?.Value ??
"0")),
Duration = result.Element("duration")?.Value,
Output = new Output()
{
ErrorInfo = new ErrorInfo()
{
Message = result.Element("errorInfo")?.Element("message")?.Value,
StackTrace = result.Element("errorInfo")?.Element("stackTrace")?.Value
}
}
};
}
results.Add(unitTestResult);
}
else
{
results.AddRange(ParseResults(result, defaultNamespace));
}
}
return results;
}