Framework_AllTests::suite PHP Method

suite() public static method

public static suite ( )
    public static function suite()
    {
        $suite = new PHPUnit_Framework_TestSuite('PHPUnit Framework');
        $tests = glob('Test/*.php');
        foreach ($tests as $id => $t) {
            if ($t == 'Test/Skeleton.php') {
                unset($tests[$id]);
            } elseif ($t == 'Test/Tokenizeur.php') {
                unset($tests[$id]);
            } elseif ($t == 'Test/Random.php') {
                unset($tests[$id]);
            } else {
                $tests[$id] = '\\' . str_replace(array('/', '.php'), array('\\', ''), $t);
            }
        }
        foreach ($tests as $i => $test) {
            $name = str_replace('\\Test\\', '', $test);
            // check code
            $code = file_get_contents('Test/' . $name . '.php');
            preg_match_all('/test' . $name . '\\d\\d/', $code, $r);
            $methods = array();
            foreach ($r[0] as $k => $v) {
                $methods[$k] = preg_replace('#test' . $name . '(\\d+)#is', '\\1', $v);
            }
            $sources = glob('source/' . $name . '.*.php');
            foreach ($sources as $k => $v) {
                $sources[$k] = preg_replace('#source/' . $name . '\\.(\\d+)\\.php#is', '\\1', $v);
            }
            $exp = glob('exp/' . $name . '.*.txt');
            foreach ($exp as $k => $v) {
                $exp[$k] = preg_replace('#exp/' . $name . '\\.(\\d+)\\.txt#is', '\\1', $v);
            }
            $diff = array_diff($sources, $methods);
            if ($diff) {
                print "missing " . count($diff) . " test methods in Test/{$name}.php \n";
                foreach ($diff as $d) {
                    print "    public function test{$name}{$d}()  { \$this->generic_test('{$name}.{$d}'); }\n";
                }
                print "\n";
            }
            $diff = array_diff($methods, $exp);
            if ($diff) {
                print "missing " . count($diff) . " results for tests in Test/{$name}.php (" . join(' ', $diff) . ")\n";
                print "   php prepareexp.php {$name}\n";
                print "\n";
            }
            $suite->addTestSuite($test);
            continue;
        }
        return $suite;
    }

Usage Example

示例#1
0
    public static function suite()
    {
        $suite = new PHPUnit_Framework_TestSuite('DBClasses');

        $suite->addTest(Framework_AllTests::suite());

        return $suite;
    }
All Usage Examples Of Framework_AllTests::suite
Framework_AllTests