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