public static TestResults InterpretTestResultsMSTest(XmlDocument doc)
        {
            TestResults results = new TestResults();
            XmlNamespaceManager nsm = new XmlNamespaceManager(doc.NameTable);
            nsm.AddNamespace("n", "http://microsoft.com/schemas/VisualStudio/TeamTest/2010");

            results.Outcome = doc.SelectSingleNode("n:TestRun/n:ResultSummary", nsm).Attributes["outcome"].Value;
            results.CountExecuted = int.Parse(doc.SelectSingleNode("n:TestRun/n:ResultSummary/n:Counters", nsm).Attributes["executed"].Value);
            results.CountPassed = int.Parse(doc.SelectSingleNode("n:TestRun/n:ResultSummary/n:Counters", nsm).Attributes["passed"].Value);
            results.CountFailed = int.Parse(doc.SelectSingleNode("n:TestRun/n:ResultSummary/n:Counters", nsm).Attributes["failed"].Value);

            XmlNodeList testresults = doc.SelectNodes("n:TestRun/n:Results/n:UnitTestResult[@outcome='Failed']", nsm);
            string names = string.Empty;
            foreach (XmlNode testresult in testresults)
            {
                string message = testresult.Attributes["testName"].Value;
                XmlNode xmlErrorInfoNode = testresult.SelectSingleNode("n:Output/n:ErrorInfo/n:Message", nsm);
                if (xmlErrorInfoNode != null)
                {
                    message += ": " + xmlErrorInfoNode.InnerText;
                    results.ResultCode = ExitCode.Failure;
                }

                results.FailingTests.Add(message);
            }

            return results;
        }
        public static TestResults InterpretTestResults(string path)
        {
            TestResults results = new TestResults();
            if (File.Exists(path))
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(path);

                results = InterpretTestResultsNUnit(doc);
            }

            return results;
        }
        public static TestResults InterpretTestResultsNUnit(XmlDocument doc)
        {
            TestResults results = new TestResults();

            results.Outcome = doc.SelectSingleNode("test-results/test-suite").Attributes["result"].Value;
            results.CountExecuted = int.Parse(doc.SelectSingleNode("test-results").Attributes["total"].Value);
            results.CountFailed = int.Parse(doc.SelectSingleNode("test-results").Attributes["failures"].Value);
            results.CountPassed = results.CountExecuted - results.CountFailed;

            XmlNodeList testresults = doc.SelectNodes("//test-case[@success='False']");

            string message = string.Empty;
            string name = "";
            foreach (XmlNode testresult in testresults)
            {
                name = testresult.Attributes["name"].Value;
                message += "TEST: " +  name;
                XmlNodeList failuresList = testresult.SelectNodes("failure/message");

                foreach (XmlNode errormessage in failuresList)
                {
                    //testname + outcome
                    message += ": " + errormessage.InnerText;
                    message += Environment.NewLine;
                }

                results.FailingTests.Add(message);
            }

            results.ResultCode = ExitCode.Success;
            if(results.CountFailed > 0)
            {
                results.ResultCode = ExitCode.Failure;
            }

            return results;
        }
Exemple #4
0
 public ProcessResult()
 {
     TestResults = new TestResults();
 }