public static function run($className) { $runner = new TestRunner(); $rc = new ReflectionClass($className); $methods = $rc->GetMethods(ReflectionMethod::IS_PUBLIC); foreach ($methods as $m) { $name = $m->name; if (!$runner->isValidTest($name)) { continue; } $count = count($className::$errors); $rt = new $className(); try { $rt->setUp(); $rt->{$name}(); echo $count === count($className::$errors) ? "." : "F"; } catch (Exception $e) { if ($e instanceof RedisException) { $className::$errors[] = "Uncaught exception '" . $e->getMessage() . "' ({$name})\n"; echo 'F'; } else { echo 'S'; } } } echo "\n"; echo implode('', $className::$warnings); if (empty($className::$errors)) { echo "All tests passed.\n"; return 0; } echo implode('', $className::$errors); return 1; }