From 4d1e08883ddd55ad7ad56d25b8c1b83ab7d31838 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Sun, 8 Mar 2015 21:06:39 +0100 Subject: Test: Improve exception handling Signed-off-by: Florian Pritz --- application/controllers/tools.php | 20 ++++++++++++++++---- application/errors/error_general.php | 7 +++++-- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/application/controllers/tools.php b/application/controllers/tools.php index e226b1815..7c8538cfb 100644 --- a/application/controllers/tools.php +++ b/application/controllers/tools.php @@ -74,14 +74,26 @@ class Tools extends MY_Controller { $test = new $testclass(); $test->setServer($url); + $exitcode = 0; + $refl = new ReflectionClass($test); foreach ($refl->getMethods() as $method) { if (strpos($method->name, "test_") === 0) { - $test->init(); - $test->{$method->name}(); - $test->cleanup(); + try { + $test->init(); + $test->{$method->name}(); + $test->cleanup(); + } catch (\Exception $e) { + echo "not ok - uncaught exception in $testcase->$method->name\n"; + _actual_exception_handler($e); + $exitcode = 255; + } } } - $test->done_testing(); + if ($exitcode == 0) { + $test->done_testing(); + } else { + exit($exitcode); + } } } diff --git a/application/errors/error_general.php b/application/errors/error_general.php index 87d5b62f6..925c7751f 100644 --- a/application/errors/error_general.php +++ b/application/errors/error_general.php @@ -33,8 +33,11 @@ if (class_exists("CI_Controller") && !isset($GLOBALS["is_error_page"])) { ", "\n", $message); + echo "# $heading\n"; + $msg = strip_tags(str_replace("
", "\n", $message)); + foreach (explode("\n", $msg) as $line) { + echo "# $line\n"; + } } else { // default CI error page ?> -- cgit v1.2.3-24-g4f1b