public virtual void Visit(TestCaseNode node) { VisitHeads(node); }
public override void Visit(TestCaseNode node) { var app = node.Application; var violations = app.Violations.ToList(); var elapsed = app.ElapsedTimeInMilliseconds; var testCase = app.TestCase; var rule = app.Rule; var displayName = string.Format("{0} [{1}]", GetTestCaseName(testCase), rule); var pass = violations.Count == 0; var elem = new XElement("test", new XAttribute("name", displayName), new XAttribute("type", testCase.TestMethod.DeclaringType.FullName), new XAttribute("method", testCase.TestMethod.Name), new XAttribute("result", pass ? "Pass" : "Fail"), new XAttribute("time", ToTimeString(elapsed))); if (!pass) { // Construct a single message from all violations var sb = new StringBuilder(); if (violations.Count > 1) { sb.Append(violations.Count).AppendLine(" violations:"); } foreach (var v in violations) { sb.AppendLine(v.Message); } var felem = new XElement("failure", new XAttribute("exception-type", "System.Exception"), new XElement("message", new XText(sb.ToString()))); elem.Add(felem); } var pc = pass ? 1 : 0; _intermediate.Add(new Result { Element = elem, PassCount = pc, FailCount = 1 - pc, Elapsed = elapsed, Level = Level }); }