private void ProcessTest(TestSuiteResult suite, XmlNode testNode) { TestCaseResult testCase = new TestCaseResult(suite, testNode.Attributes); foreach (XmlNode child in testNode.ChildNodes) { ITestAssertion assertion = TestAssertionFactory.Create( testCase, child.Name, child.Attributes); if (assertion is AssertionWithStackTrace) { AssertionWithStackTrace ast = (AssertionWithStackTrace)assertion; ast.SetMessage(child.InnerText); foreach (XmlNode child2 in child.ChildNodes) { if (child2.Name == "stack-frame") { BacktraceFrame frame = ProcessStackFrame(child2); ast.AddBacktraceFrame(frame); } } } } }
private void ProcessSuiteError(TestSuiteResult suite, XmlNode errorNode) { TestSuiteErrorResult error = new TestSuiteErrorResult(suite, errorNode.Attributes); error.Message = errorNode.InnerText; foreach (XmlNode child in errorNode.ChildNodes) { if (child.Name == "stack-frame") { BacktraceFrame frame = ProcessStackFrame(child); error.AddBacktraceFrame(frame); } } }
public void AddBacktraceFrame(BacktraceFrame frame) { backtrace.Add(frame); }
public void AddBacktraceFrame(BacktraceFrame frame) { backtrace.Add(frame); }
private void AddBacktraceToDetail(BacktraceFrame[] backtrace, TreeNodeCollection nodes) { if (backtrace != null) { foreach (BacktraceFrame frame in backtrace) { TreeNode node = new TreeNode(); // If the filename is an absolute path to a file contained // in the project directory, just make it relative to the // project. Otherwise, use the whole absolute path. string text = frame.Function; string filename = frame.Filename; if(filename != null) { if (Path.IsPathRooted(filename)) { string relPath = PathUtils.RelativePathTo( containingProject.ProjectDirectory, filename); if (!relPath.StartsWith("..")) filename = relPath; } text += " in " + filename; if(frame.LineNumber != 0) text += ":" + frame.LineNumber.ToString(); } node.Tag = frame; node.Text = text; node.ImageKey = node.SelectedImageKey = "BacktraceFrame"; nodes.Add(node); } } }