| // +----------------------------------------------------------------------+ // // $Id: clitest.php,v 1.15 2006/10/20 16:36:32 lsmith Exp $ /* This is a small test suite for MDB2 using PHPUnit This is the command line version and should be used like so; php -q clitest.php This will run through all tests in all testcases (as defined in test_setup.php). To run individual tests add their names to the command line and all testcases will be searched for matching test names, e.g. php -q clitest.php teststorage testreplace */ require_once 'test_setup.php'; require_once 'PHPUnit.php'; require_once 'testUtils.php'; require_once 'MDB2.php'; require_once 'Console_TestListener.php'; MDB2::loadFile('Date'); foreach ($testcases as $testcase) { include_once $testcase.'.php'; } $database = 'driver_test'; $inputMethods = $argv; if ($argc > 1) { array_shift($inputMethods); $exclude = false; if ($inputMethods[0] == '-exclude') { array_shift($inputMethods); $exclude = true; } foreach ($testcases as $testcase) { $possibleMethods = getTests($testcase); if ($exclude) { $intersect = array_diff($possibleMethods, $inputMethods); } else { $intersect = array_intersect($possibleMethods, $inputMethods); } if (count($intersect) > 0) { $testmethods[$testcase] = array_flip($intersect); } } } $database = 'driver_test'; if (!isset($testmethods) || !is_array($testmethods)) { foreach ($testcases as $testcase) { $testmethods[$testcase] = array_flip(getTests($testcase)); } } foreach ($dbarray as $db) { $dsn = $db['dsn']; $options = !empty($db['options']) ? $db['options'] : array(); $GLOBALS['_show_silenced'] = !empty($options['debug']) ? $options['debug'] : false; $display_dsn = $dsn['phptype'] . "://" . $dsn['username'] . ":XXX@" . $dsn['hostspec'] . "/" . $database; echo "=== Start test of $display_dsn on ".PHP_VERSION." ===\n"; $suite = new PHPUnit_TestSuite(); foreach ($testcases as $testcase) { if (is_array($testmethods[$testcase])) { $methods = array_keys($testmethods[$testcase]); foreach ($methods as $method) { $suite->addTest(new $testcase($method)); } } } $result = new PHPUnit_TestResult; $result->addListener(new Console_TestListener); $suite->run($result); $count = $result->runCount(); $failed = $result->failureCount(); echo "=== Summary: $failed failed assertions in $count tests ===\n\n"; echo "=== End test of $display_dsn ===\n\n"; } ?>