/** * @param array $classes * @param bool $return_html * @return string */ public static function run($classes, $return_html = true) { self::$classes = $classes; self::$tests = 0; self::$passes = array(); self::$fails = array(); self::$exceptions = array(); self::$failing_methods = array(); foreach ($classes as $class_name) { ++self::$tests; self::$passes[$class_name] = 0; self::$fails[$class_name] = 0; self::$exceptions[$class_name] = array(); self::$failing_methods[$class_name] = array(); $methods = get_class_methods($class_name); $test_case = new $class_name(); $test_case->setup(); foreach ($methods as $method_name) { if (substr($method_name, 0, 4) == 'test') { try { $test_case->{$method_name}(); } catch (Exception $e) { self::$exceptions[$class_name][$method_name] = $e; } } } $test_case->teardown(); } return self::printer($return_html); }