Task CreateTask(TestResult result) { TaskType taskType = TaskType.Warning; FileLineReference lineRef = null; string message = String.Empty; if (result.IsFailure) { taskType = TaskType.Error; lineRef = OutputTextLineParser.GetNUnitOutputFileLineReference(result.StackTrace, true); message = GetTestResultMessage(result, "${res:NUnitPad.NUnitPadContent.TestTreeView.TestFailedMessage}"); } else if (result.IsIgnored) { message = GetTestResultMessage(result, "${res:NUnitPad.NUnitPadContent.TestTreeView.TestNotExecutedMessage}"); } if (lineRef == null) { lineRef = FindTest(result.Name); } if (lineRef != null) { return(new Task(FileName.Create(lineRef.FileName), message, lineRef.Column, lineRef.Line, taskType)); } return(new Task(null, message, 0, 0, taskType)); }
public void GetFileLineReference_NUnitWithTwoInStatementsWithOneInsideDoubleQuotesCharacter_ReturnsExpectedFileName() { string output = " in \" at NunitFoo.MyTest.Test() in c:\\test\\Test.cs:line 11"; FileLineReference lineRef = OutputTextLineParser.GetFileLineReference(output); Assert.AreEqual(@"c:\test\Test.cs", lineRef.FileName); }
public static Task Create(TestResult result, TestProject project) { TaskType taskType = TaskType.Warning; FileLineReference lineRef = null; string message = String.Empty; if (result.IsFailure) { taskType = TaskType.Error; if (!result.StackTraceFilePosition.IsEmpty) { lineRef = new FileLineReference(result.StackTraceFilePosition.FileName, result.StackTraceFilePosition.Line - 1, result.StackTraceFilePosition.Column - 1); } message = GetTestFailedMessage(result); } else if (result.IsIgnored) { message = GetTestIgnoredMessage(result); } if (lineRef == null) { lineRef = FindTest(result.Name, project); } FileName fileName = null; if (lineRef != null) { fileName = new FileName(Path.GetFullPath(lineRef.FileName)); int line = lineRef.Line + 1; return(new Task(fileName, message, lineRef.Column, line, taskType)); } return(new Task(fileName, message, 0, 0, taskType)); }
void ExceptionViewDoubleClick(object sender, EventArgs e) { string fullText = exceptionView.Text; // Any text? if (fullText.Length > 0) { //int line = textEditorControl.ActiveTextAreaControl.Caret.Line; //string textLine = TextUtilities.GetLineAsString(textEditorControl.Document, line); Point clickPos = exceptionView.PointToClient(Control.MousePosition); int index = exceptionView.GetCharIndexFromPosition(clickPos); int start = index; // find start of current line while (--start > 0 && fullText[start - 1] != '\n') { ; } // find end of current line while (++index < fullText.Length && fullText[index] != '\n') { ; } string textLine = fullText.Substring(start, index - start); FileLineReference lineReference = OutputTextLineParser.GetFileLineReference(textLine); if (lineReference != null) { // Open matching file. FileService.JumpToFilePosition(lineReference.FileName, lineReference.Line, lineReference.Column); } } }
public void CompilerFailure() { string output = "c:\\test\\NunitFoo\\NunitFoo.Tests\\FooTest.cs(22,10)"; FileLineReference lineRef = OutputTextLineParser.GetFileLineReference(output); Assert.AreEqual(lineRef.FileName, "c:\\test\\NunitFoo\\NunitFoo.Tests\\FooTest.cs"); Assert.AreEqual(21, lineRef.Line); Assert.AreEqual(9, lineRef.Column); }
public void MultilineWithCarriageReturn() { string output = " at NunitFoo.Tests.FooTest.Foo() in c:\\test\\NunitFoo\\NunitFoo.Tests\\FooTest.cs:line 22\r\n"; FileLineReference lineRef = OutputTextLineParser.GetNUnitOutputFileLineReference(output, true); Assert.AreEqual(lineRef.FileName, "c:\\test\\NunitFoo\\NunitFoo.Tests\\FooTest.cs"); Assert.AreEqual(21, lineRef.Line); Assert.AreEqual(0, lineRef.Column); }
public void GetFileLineReference_CompilerFailure_ReturnsExpectedFileLineReference() { string output = @"c:\test\NunitFoo\NunitFoo.Tests\FooTest.cs(22,10)"; FileLineReference lineRef = OutputTextLineParser.GetFileLineReference(output); Assert.AreEqual(@"c:\test\NunitFoo\NunitFoo.Tests\FooTest.cs", lineRef.FileName); Assert.AreEqual(22, lineRef.Line); Assert.AreEqual(10, lineRef.Column); }
public void GetNUnitOutputFileLineReference_MultilineNUnitOutputWithCarriageReturn_ReturnsExpectedFileLineReference() { string output = " at NunitFoo.Tests.FooTest.Foo() in c:\\test\\NunitFoo\\NunitFoo.Tests\\FooTest.cs:line 22\r\n"; FileLineReference lineRef = OutputTextLineParser.GetNUnitOutputFileLineReference(output, true); Assert.AreEqual(@"c:\test\NunitFoo\NunitFoo.Tests\FooTest.cs", lineRef.FileName); Assert.AreEqual(22, lineRef.Line); Assert.AreEqual(0, lineRef.Column); }
FilePosition ParseFilePositionFromStackTrace() { FileLineReference fileLineRef = OutputTextLineParser.GetNUnitOutputFileLineReference(StackTrace, true); if (fileLineRef != null) { return(CreateFilePosition(fileLineRef)); } return(FilePosition.Empty); }
protected override void OnStackTraceChanged() { FileLineReference fileLineRef = OutputTextLineParser.GetNUnitOutputFileLineReference(StackTrace, true); if (fileLineRef != null) { StackTraceFilePosition = CreateFilePosition(fileLineRef); } else { StackTraceFilePosition = DomRegion.Empty; } }
FilePosition CreateFilePosition(FileLineReference fileLineRef) { string fileName = Path.GetFullPath(fileLineRef.FileName); return(new FilePosition(fileName, fileLineRef.Line, fileLineRef.Column + 1)); }