From 3b8170b61774ce750a4fdd69c86ae092d89cb398 Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 9 Aug 2010 17:55:08 +0400 Subject: [PATCH] testng: NPE if setUp throws exception --- .../testng/ui/TestNGConsoleView.java | 28 ++++++++++--------- .../testng/ui/TestNGResults.java | 7 +++++ 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGConsoleView.java b/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGConsoleView.java index 2e628aca3bdd..3994d8975339 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGConsoleView.java +++ b/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGConsoleView.java @@ -109,19 +109,20 @@ public class TestNGConsoleView extends BaseTestsOutputConsoleView { if (testNGResults != null) { int exceptionMark = myExceptionalMark == -1 ? 0 : myExceptionalMark; - final String stackTrace = result.getStackTrace(); - if (stackTrace != null && stackTrace.length() > 10) { - exceptionMark = currentTest.getCurrentSize(); - //trim useless crud from stacktrace - String trimmed = trimStackTrace(stackTrace); - List printables = getPrintables(result, trimmed); - for (Printable printable : printables) { - currentTest.addLast(printable); + if (currentTest != null) { + final String stackTrace = result.getStackTrace(); + if (stackTrace != null && stackTrace.length() > 10) { + exceptionMark = currentTest.getCurrentSize(); + //trim useless crud from stacktrace + List printables = getPrintables(result); + for (Printable printable : printables) { + currentTest.addLast(printable); + } + } + final TestProxy failedToStart = testNGResults.getFailedToStart(); + if (failedToStart != null) { + currentTest.addChild(failedToStart); } - } - final TestProxy failedToStart = testNGResults.getFailedToStart(); - if (failedToStart != null) { - currentTest.addChild(failedToStart); } testNGResults.addTestResult(result, exceptionMark); myExceptionalMark = -1; @@ -166,7 +167,8 @@ public class TestNGConsoleView extends BaseTestsOutputConsoleView { return builder.toString(); } - private List getPrintables(final TestResultMessage result, String s) { + static List getPrintables(final TestResultMessage result) { + String s = trimStackTrace(result.getStackTrace()); List printables = new ArrayList(); //figure out if we have a diff we need to hyperlink Matcher matcher = COMPARISION_PATTERN.matcher(s); diff --git a/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGResults.java b/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGResults.java index a461a5609ea9..0106adca373b 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGResults.java +++ b/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGResults.java @@ -241,6 +241,13 @@ public class TestNGResults extends TestResultsPanel implements TestFrameworkRunn else { //do not remember testresultmessage: test hierarchy is not set testCase = new TestProxy(result.toDisplayString()); + final String stackTrace = result.getStackTrace(); + if (stackTrace != null) { + final List printables = TestNGConsoleView.getPrintables(result); + for (Printable printable : printables) { + testCase.addLast(printable); + } + } failedToStart = testCase; }