public static List ParseResults()

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;
    }