Author: [email protected]
Date: Tue Jun 23 18:52:00 2009
New Revision: 5619
Modified:
trunk/user/src/com/google/gwt/junit/rebind/GWTRunnerGenerator.java
trunk/user/super/com/google/gwt/junit/translatable/com/google/gwt/junit/client/impl/GWTRunner.java
Log:
Retains exception cause chain when GWTRunner fails to instantiate a test
class (e.g. due to an exception in the test's ctor or initializer).
Previously, it was really hard to figure out what was going wrong in web
mode in this circumstance.
Suggested by: me
Patch by: scottb
Review by: me
Modified: trunk/user/src/com/google/gwt/junit/rebind/GWTRunnerGenerator.java
==============================================================================
--- trunk/user/src/com/google/gwt/junit/rebind/GWTRunnerGenerator.java
(original)
+++ trunk/user/src/com/google/gwt/junit/rebind/GWTRunnerGenerator.java Tue
Jun 23 18:52:00 2009
@@ -169,8 +169,6 @@
sw.println();
sw.println("protected final GWTTestCase createNewTestCase(String
testClass) {");
sw.indent();
- sw.println("try {");
- sw.indent();
boolean isFirst = true;
for (String className : testClasses) {
if (isFirst) {
@@ -183,11 +181,6 @@
sw.indentln("return GWT.create(" + className + ".class);");
sw.println("}");
}
- sw.outdent();
- sw.println("} catch (Throwable t) {");
- sw.indentln("// Crash in a useful manner");
- sw.indentln("GWT.log(\"Unable to construct TestCase: \" + testClass,
t);");
- sw.println("}");
sw.println("return null;");
sw.outdent();
sw.println("}");
Modified:
trunk/user/super/com/google/gwt/junit/translatable/com/google/gwt/junit/client/impl/GWTRunner.java
==============================================================================
---
trunk/user/super/com/google/gwt/junit/translatable/com/google/gwt/junit/client/impl/GWTRunner.java
(original)
+++
trunk/user/super/com/google/gwt/junit/translatable/com/google/gwt/junit/client/impl/GWTRunner.java
Tue Jun 23 18:52:00 2009
@@ -176,10 +176,16 @@
private void runTest() {
// Dynamically create a new test case.
- GWTTestCase testCase = createNewTestCase(currentTest.getTestClass());
+ GWTTestCase testCase = null;
+ Throwable caught = null;
+ try {
+ testCase = createNewTestCase(currentTest.getTestClass());
+ } catch (Throwable e) {
+ caught = e;
+ }
if (testCase == null) {
RuntimeException ex = new RuntimeException(currentTest
- + ": could not instantiate the requested class");
+ + ": could not instantiate the requested class", caught);
JUnitResult result = new JUnitResult();
result.setExceptionWrapper(new ExceptionWrapper(ex));
reportResultsAndGetNextMethod(result);
--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---