false, 'file=' => false, 'use-filebackend=' => false, 'use-bagostuff=' => false, 'use-jobqueue=' => false, 'keep-uploads' => false, 'use-normal-tables' => false, 'reuse-db' => false, 'wiki=' => false, ); public function __construct() { foreach ( self::$additionalOptions as $option => $default ) { $this->longOptions[$option] = $option . 'Handler'; } } public static function main( $exit = true ) { $command = new self; if ( wfIsWindows() ) { # Windows does not come anymore with ANSI.SYS loaded by default # PHPUnit uses the suite.xml parameters to enable/disable colors # which can be then forced to be enabled with --colors. # The below code inject a parameter just like if the user called # phpunit with a --no-color option (which does not exist). It # overrides the suite.xml setting. # Probably fix bug 29226 $command->arguments['colors'] = false; } # Makes MediaWiki PHPUnit directory includable so the PHPUnit will # be able to resolve relative files inclusion such as suites/* # PHPUnit uses stream_resolve_include_path() internally # See bug 32022 set_include_path( __DIR__ . PATH_SEPARATOR . get_include_path() ); $command->run( $_SERVER['argv'], $exit ); } public function __call( $func, $args ) { if ( substr( $func, -7 ) == 'Handler' ) { if ( is_null( $args[0] ) ) { $args[0] = true; } //Booleans self::$additionalOptions[substr( $func, 0, -7 )] = $args[0]; } } public function run( array $argv, $exit = true ) { wfProfileIn( __METHOD__ ); $ret = parent::run( $argv, false ); wfProfileOut( __METHOD__ ); // Return to real wiki db, so profiling data is preserved MediaWikiTestCase::teardownTestDB(); // Log profiling data, e.g. in the database or UDP wfLogProfilingData(); if ( $exit ) { exit( $ret ); } else { return $ret; } } public function showHelp() { parent::showHelp(); print <<