private void GetDataFromXml()
 {
     _result = new testrun
     {
         guid = Guid.NewGuid().ToString(),
         // ReSharper disable once PossibleNullReferenceException
         testcasecount = int.Parse(_document.DocumentElement.Attributes["testcasecount"].Value),
         result        = _document.DocumentElement.Attributes["result"].Value,
         passed        = int.Parse(_document.DocumentElement.Attributes["passed"].Value),
         failed        = int.Parse(_document.DocumentElement.Attributes["failed"].Value),
         inconclusive  = int.Parse(_document.DocumentElement.Attributes["inconclusive"].Value),
         skipped       = int.Parse(_document.DocumentElement.Attributes["skipped"].Value),
         starttime     = DateTime.Parse(_document.DocumentElement.Attributes["start-time"].Value),
         endtime       = DateTime.Parse(_document.DocumentElement.Attributes["end-time"].Value),
         duration      = double.Parse(_document.DocumentElement.Attributes["duration"].Value)
     };
 }
Example #2
0
        public List <TestCase> GetAllPassesTestCases(string testResultsFileContent)
        {
            testrun testRun   = Deserialize <testrun>(testResultsFileContent);
            var     testCases = new List <TestCase>();

            foreach (var testSuiteNamespace in testRun.testsuite.testsuite)
            {
                foreach (var testSuiteTestSuite in testSuiteNamespace.testsuite)
                {
                    foreach (var testSuiteTestCase in testSuiteTestSuite.testcase.Where(x => x.result.Equals("Passed")).ToList())
                    {
                        testCases.Add(new TestCase(testSuiteTestCase.fullname, testSuiteTestSuite.name));
                    }
                }
            }

            return(testCases);
        }
Example #3
0
        private List <testrunTestsuiteTestsuiteTestsuiteTestcase> GetAllExecutedTestCases(testrun testRun)
        {
            var allTestCases = new List <testrunTestsuiteTestsuiteTestsuiteTestcase>();

            foreach (var testSuiteNamespace in testRun.testsuite.testsuite)
            {
                foreach (var testSuiteTestSuite in testSuiteNamespace.testsuite)
                {
                    allTestCases.AddRange(testSuiteTestSuite.testcase.ToList());
                }
            }

            return(allTestCases);
        }
Example #4
0
        public string MergeTestResults(object testResultsToBeMergedObj)
        {
            var     result             = string.Empty;
            testrun mergedTestRun      = null;
            var     testRunsToBeMerged = (List <object>)testResultsToBeMergedObj;

            if (testRunsToBeMerged.Any())
            {
                mergedTestRun           = (testrun)testRunsToBeMerged.First();
                mergedTestRun.starttime = ((testrun)testRunsToBeMerged.First()).starttime;
                mergedTestRun.endtime   = ((testrun)testRunsToBeMerged.Last()).endtime;
                mergedTestRun.duration  = (decimal)(DateTime.Parse(mergedTestRun.starttime) - DateTime.Parse(mergedTestRun.endtime)).TotalSeconds;

                foreach (testrun currentTestRun in testRunsToBeMerged)
                {
                    if (mergedTestRun.id != currentTestRun.id)
                    {
                        // Merge assembly level test suite.
                        if (mergedTestRun.testsuite.result == "Passed" && mergedTestRun.testsuite.result != currentTestRun.testsuite.result)
                        {
                            mergedTestRun.testsuite.result = currentTestRun.testsuite.result;
                        }

                        mergedTestRun.testsuite.total        += currentTestRun.testsuite.total;
                        mergedTestRun.testsuite.passed       += currentTestRun.testsuite.passed;
                        mergedTestRun.testsuite.failed       += currentTestRun.testsuite.failed;
                        mergedTestRun.testsuite.warnings     += currentTestRun.testsuite.warnings;
                        mergedTestRun.testsuite.inconclusive += currentTestRun.testsuite.inconclusive;
                        mergedTestRun.testsuite.skipped      += currentTestRun.testsuite.skipped;
                        mergedTestRun.testsuite.asserts      += currentTestRun.testsuite.asserts;
                        mergedTestRun.testsuite.endtime       = currentTestRun.testsuite.endtime;

                        foreach (var testSuiteNamespace in currentTestRun.testsuite.testsuite)
                        {
                            if (mergedTestRun.testsuite.testsuite.Any(x => x.id.Equals(testSuiteNamespace.id)))
                            {
                                var mergedTestRunTestSuiteNamespace = mergedTestRun.testsuite.testsuite.First(x => x.id.Equals(testSuiteNamespace.id));

                                // Merge namespace level test suite. If exist update if not add to the array?
                                if (mergedTestRunTestSuiteNamespace.result == "Passed" && mergedTestRunTestSuiteNamespace.result != testSuiteNamespace.result)
                                {
                                    mergedTestRunTestSuiteNamespace.result = testSuiteNamespace.result;
                                }

                                mergedTestRunTestSuiteNamespace.total        += testSuiteNamespace.total;
                                mergedTestRunTestSuiteNamespace.passed       += testSuiteNamespace.passed;
                                mergedTestRunTestSuiteNamespace.failed       += testSuiteNamespace.failed;
                                mergedTestRunTestSuiteNamespace.warnings     += testSuiteNamespace.warnings;
                                mergedTestRunTestSuiteNamespace.inconclusive += testSuiteNamespace.inconclusive;
                                mergedTestRunTestSuiteNamespace.skipped      += testSuiteNamespace.skipped;
                                mergedTestRunTestSuiteNamespace.asserts      += testSuiteNamespace.asserts;
                                mergedTestRunTestSuiteNamespace.endtime       = testSuiteNamespace.endtime;

                                foreach (var testSuiteTestSuite in testSuiteNamespace.testsuite)
                                {
                                    if (mergedTestRunTestSuiteNamespace.testsuite.Any(x => x.id.Equals(testSuiteNamespace.id)))
                                    {
                                        var mergedTestRunTestSuiteClass = mergedTestRunTestSuiteNamespace.testsuite.First(x => x.id.Equals(testSuiteNamespace.id));

                                        // Merge test suite class level.
                                        mergedTestRunTestSuiteClass.failed = testSuiteTestSuite.testcase.Count(x => x.result.Equals("Failed"));
                                        mergedTestRunTestSuiteClass.passed = testSuiteTestSuite.testcase.Count(x => x.result.Equals("Passed"));
                                        if (mergedTestRunTestSuiteClass.passed != testSuiteTestSuite.testcase.Length)
                                        {
                                            mergedTestRunTestSuiteClass.result = "Failed";
                                        }
                                        else
                                        {
                                            mergedTestRunTestSuiteClass.result = "Passed";
                                        }

                                        mergedTestRunTestSuiteClass.total        += testSuiteTestSuite.total;
                                        mergedTestRunTestSuiteClass.passed       += testSuiteTestSuite.passed;
                                        mergedTestRunTestSuiteClass.failed       += testSuiteTestSuite.failed;
                                        mergedTestRunTestSuiteClass.warnings     += testSuiteTestSuite.warnings;
                                        mergedTestRunTestSuiteClass.inconclusive += testSuiteTestSuite.inconclusive;
                                        mergedTestRunTestSuiteClass.skipped      += testSuiteTestSuite.skipped;
                                        mergedTestRunTestSuiteClass.asserts      += testSuiteTestSuite.asserts;
                                        mergedTestRunTestSuiteClass.endtime       = testSuiteTestSuite.endtime;
                                    }
                                    else
                                    {
                                        var mergedTestSuitesClass = mergedTestRunTestSuiteNamespace.testsuite.ToList();
                                        mergedTestSuitesClass.Add(testSuiteTestSuite);
                                        mergedTestRunTestSuiteNamespace.testsuite = mergedTestSuitesClass.ToArray();
                                    }
                                }
                            }
                            else
                            {
                                var mergedTestSuites = mergedTestRun.testsuite.testsuite.ToList();
                                mergedTestSuites.Add(testSuiteNamespace);
                                mergedTestRun.testsuite.testsuite = mergedTestSuites.ToArray();
                            }
                        }
                    }
                }
            }

            if (mergedTestRun != null)
            {
                result = Serialize(mergedTestRun);
            }

            return(result);
        }