public IEnumerable<TestRunResults> Parse() { var doc = new XPathDocument(_reportFile); var nav = doc.CreateNavigator(); var assemblies = nav.Select("/MSpec/assembly").OfType<XPathNavigator>(); return assemblies .Select(assembly => new Assembly { AssemblyLocation = assembly.GetAttribute("location", ""), TimeSpent = ReadTimeSpan(assembly), ContextSpecifications = ContextSpecificationsFor(assembly) }) .Select(x => { x.AssociatedRunInfo = FindRunInfo(_run, x); return x; }) .Where(x => x.AssociatedRunInfo != null) .Select(x => { var results = new TestRunResults(x.AssociatedRunInfo.Project.Key, x.AssociatedRunInfo.Assembly, _run.RunInfos.Any(), TestRunner.MSpec, TestResultsFor(x.ContextSpecifications)); results.SetTimeSpent(x.TimeSpent); return results; }) .ToList(); }
public TestRunResults SetRemovedTestsAsPassed(TestRunResults results, TestRunInfo[] infos) { _results = results; _infos = infos; var tests = new List<TestResult>(); tests.AddRange(results.All); tests.AddRange(getTests(_cache.Failed)); tests.AddRange(getTests(_cache.Ignored)); var modified = new TestRunResults(_results.Project, _results.Assembly, _results.IsPartialTestRun, _results.Runner, tests.ToArray()); modified.SetTimeSpent(_results.TimeSpent); return modified; }
private static void handleSuite(XmlNodeList suites, List<TestRunResults> results, string testLocation) { foreach (XmlNode suite in suites) { handleSuite(suite.SelectNodes("testsuite"), results, testLocation); var tests = getTests(suite); if (tests.Count() > 0) { var result = new TestRunResults( suite.Attributes["name"].Value, testLocation, false, TestRunner.PhpUnit, tests.ToArray()); result.SetTimeSpent(TimeSpan.FromMilliseconds(1000*double.Parse(suite.Attributes["time"].Value))); results.Add(result); } } }
private TestRunResults[] getResults(IEnumerable<AutoTest.TestRunners.Shared.Results.TestResult> tests, TestRunInfo[] runInfos) { var results = new List<TestRunResults>(); foreach (var byRunner in tests.GroupBy(x => x.Runner)) { var runner = TestRunnerConverter.FromString(byRunner.Key); foreach (var byAssembly in byRunner.GroupBy(x => x.Assembly)) { var info = runInfos.Where(x => x.Assembly.Equals(byAssembly.Key)).FirstOrDefault(); var project = ""; var partial = false; if (info != null) { if (info.Project != null) project = info.Project.Key; partial = info.OnlyRunSpcifiedTestsFor(runner) || info.GetTestsFor(runner).Count() > 0 || info.GetMembersFor(runner).Count() > 0 || info.GetNamespacesFor(runner).Count() > 0; } DebugLog.Debug.WriteDetail(string.Format("Partial run is {0} for runner {1}", partial, runner)); var result = new TestRunResults( project, byAssembly.Key, partial, runner, byAssembly.Select(x => ConvertResult(x)).ToArray()); result.SetTimeSpent(TimeSpan.FromMilliseconds(byAssembly.Sum(x => x.DurationInMilliseconds))); results.Add(result); } } return results.ToArray(); }