From 0f1dee5f46960cde744b00dc1a5b540440a877c4 Mon Sep 17 00:00:00 2001 From: Ian Hickson Date: Fri, 15 Apr 2016 09:38:04 -0700 Subject: [PATCH] Always dump (unwanted) exceptions during tests (#3344) ...even if the test fails. --- packages/flutter_test/lib/src/element_tree_tester.dart | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/flutter_test/lib/src/element_tree_tester.dart b/packages/flutter_test/lib/src/element_tree_tester.dart index 16c893dcaa..cb8ed92a25 100644 --- a/packages/flutter_test/lib/src/element_tree_tester.dart +++ b/packages/flutter_test/lib/src/element_tree_tester.dart @@ -169,8 +169,8 @@ class ElementTreeTester extends Instrumentation { void testElementTree(callback(ElementTreeTester tester)) { new FakeAsync().run((FakeAsync async) { FlutterExceptionHandler oldHandler = FlutterError.onError; + ElementTreeTester tester = new ElementTreeTester._(async); try { - ElementTreeTester tester = new ElementTreeTester._(async); FlutterError.onError = (FlutterErrorDetails details) { if (tester._pendingException != null) { FlutterError.dumpErrorToConsole(tester._pendingException); @@ -196,12 +196,14 @@ void testElementTree(callback(ElementTreeTester tester)) { return async.nonPeriodicTimerCount == 0; }); assert(async.microtaskCount == 0); // Shouldn't be possible. - if (tester._pendingException != null) { - FlutterError.dumpErrorToConsole(tester._pendingException); + if (tester._pendingException != null) throw 'An exception (shown above) was thrown during the test.'; - } } finally { FlutterError.onError = oldHandler; + if (tester._pendingException != null) { + FlutterError.dumpErrorToConsole(tester._pendingException); + tester._pendingException = null; + } } }); }