X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fphpunit%2FMediaWikiPHPUnitCommand.php;h=897919541d0dc9c70464bfdae5e86f346174f6d0;hb=ebbccf1845abbd1030ce8e3c7d27c2014f2b66ce;hp=042956a915d5406270214adbd97a322c6e20d5f9;hpb=7e0699795939347a466564b849d2c1c1e1ac379f;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/MediaWikiPHPUnitCommand.php b/tests/phpunit/MediaWikiPHPUnitCommand.php index 042956a915..897919541d 100644 --- a/tests/phpunit/MediaWikiPHPUnitCommand.php +++ b/tests/phpunit/MediaWikiPHPUnitCommand.php @@ -1,119 +1,33 @@ false, - 'file=' => false, - 'use-filebackend=' => false, - 'use-bagostuff=' => false, - 'use-jobqueue=' => false, - 'keep-uploads' => false, - 'use-normal-tables' => false, - 'reuse-db' => false, - 'wiki=' => false, - 'debug-tests' => false, - ); - - public function __construct() { - foreach ( self::$additionalOptions as $option => $default ) { - $this->longOptions[$option] = $option . 'Handler'; - } - } - - protected function handleArguments( array $argv ) { - parent::handleArguments( $argv ); - - if ( !isset( $this->arguments['listeners'] ) ) { - $this->arguments['listeners'] = array(); - } - - foreach ( $this->options[0] as $option ) { - switch ( $option[0] ) { - case '--debug-tests': - $this->arguments['listeners'][] = new MediaWikiPHPUnitTestListener( 'PHPUnitCommand' ); - break; - } + public function __construct( $ignorableOptions, $cliArgs ) { + $ignore = function ( $arg ) { + }; + foreach ( $ignorableOptions as $option ) { + $this->longOptions[$option] = $ignore; } + $this->cliArgs = $cliArgs; } - 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]; + protected function handleCustomTestSuite() { + // Use our suite.xml + if ( !isset( $this->arguments['configuration'] ) ) { + $this->arguments['configuration'] = __DIR__ . '/suite.xml'; } - } - - 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(); + // Add our own listener + $this->arguments['listeners'][] = new MediaWikiPHPUnitTestListener; - // Log profiling data, e.g. in the database or UDP - wfLogProfilingData(); - - if ( $exit ) { - exit( $ret ); - } else { - return $ret; - } + // Output only to stderr to avoid "Headers already sent" problems + $this->arguments['stderr'] = true; } - public function showHelp() { - parent::showHelp(); - - print <<setMwCliArgs( $this->cliArgs ); + return $runner; } }