autorun.php.svn-base

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 87 行

SVN-BASE
87
字号
<?php/** *  Autorunner which runs all tests cases found in a file *  that includes this module. *  @package    SimpleTest *  @version    $Id: autorun.php 1721 2008-04-07 19:27:10Z lastcraft $ */require_once dirname(__FILE__) . '/unit_tester.php';require_once dirname(__FILE__) . '/mock_objects.php';require_once dirname(__FILE__) . '/collector.php';require_once dirname(__FILE__) . '/default_reporter.php';$GLOBALS['SIMPLETEST_AUTORUNNER_INITIAL_CLASSES'] = get_declared_classes();register_shutdown_function('simpletest_autorun');/** *    Exit handler to run all recent test cases if no test has *    so far been run. Uses the DefaultReporter which can have *    it's output controlled with SimpleTest::prefer(). */function simpletest_autorun() {    if (tests_have_run()) {        return;    }    $candidates = array_intersect(            capture_new_classes(),            classes_defined_in_initial_file());    $loader = new SimpleFileLoader();    $suite = $loader->createSuiteFromClasses(            basename(initial_file()),            $loader->selectRunnableTests($candidates));    $result = $suite->run(new DefaultReporter());    if (SimpleReporter::inCli()) {        exit($result ? 0 : 1);    }}/** *    Checks the current test context to see if a test has *    ever been run. *    @return boolean        True if tests have run. */function tests_have_run() {    if ($context = SimpleTest::getContext()) {        return (boolean)$context->getTest();    }    return false;}/** *    The first autorun file. *    @return string        Filename of first autorun script. */function initial_file() {    static $file = false;    if (! $file) {        $file = reset(get_included_files());    }    return $file;}/** *    Just the classes from the first autorun script. May *    get a few false positives, as it just does a regex based *    on following the word "class". *    @return array        List of all possible classes in first *                         autorun script. */function classes_defined_in_initial_file() {    if (preg_match_all('/\bclass\s+(\w+)/i', file_get_contents(initial_file()), $matches)) {        return array_map('strtolower', $matches[1]);    }    return array();}/** *    Every class since the first autorun include. This *    is safe enough if require_once() is alwyas used. *    @return array        Class names. */function capture_new_classes() {    global $SIMPLETEST_AUTORUNNER_INITIAL_CLASSES;    return array_map('strtolower', array_diff(get_declared_classes(),                            $SIMPLETEST_AUTORUNNER_INITIAL_CLASSES ?                            $SIMPLETEST_AUTORUNNER_INITIAL_CLASSES : array()));}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?