From: Adrian Heine Date: Thu, 17 Mar 2016 12:28:34 +0000 (+0100) Subject: Add --with-phpunitclass arg to phpunit.php X-Git-Tag: 1.31.0-rc.0~7588 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/password.php?a=commitdiff_plain;h=110dc4d9a20b001e27ee522e09c4091b31934edc;p=lhc%2Fweb%2Fwiklou.git Add --with-phpunitclass arg to phpunit.php This would allow to easily use stuff like https://github.com/fiunchinho/phpunit-randomizer. Change-Id: I28e8b1d261de0395366b18465a0adc4d7c4fde4a --- diff --git a/tests/phpunit/phpunit.php b/tests/phpunit/phpunit.php index 02d1a1d681..4d060e4f05 100755 --- a/tests/phpunit/phpunit.php +++ b/tests/phpunit/phpunit.php @@ -10,6 +10,8 @@ // through this entry point or not. define( 'MW_PHPUNIT_TEST', true ); +$wgPhpUnitClass = 'PHPUnit_TextUI_Command'; + // Start up MediaWiki in command-line mode require_once dirname( dirname( __DIR__ ) ) . "/maintenance/Maintenance.php"; @@ -29,6 +31,12 @@ class PHPUnitMaintClass extends Maintenance { public function __construct() { parent::__construct(); + $this->addOption( + 'with-phpunitclass', + 'Class name of the PHPUnit entry point to use', + false, + true + ); $this->addOption( 'debug-tests', 'Log testing activity to the PHPUnitCommand log channel.', @@ -151,6 +159,18 @@ class PHPUnitMaintClass extends Maintenance { [ '--configuration', $IP . '/tests/phpunit/suite.xml' ] ); } + if ( $this->hasOption( 'with-phpunitclass' ) ) { + global $wgPhpUnitClass; + $wgPhpUnitClass = $this->getOption( 'with-phpunitclass' ); + + # Cleanup $args array so the option and its value do not + # pollute PHPUnit + $key = array_search( '--with-phpunitclass', $_SERVER['argv'] ); + unset( $_SERVER['argv'][$key] ); // the option + unset( $_SERVER['argv'][$key + 1] ); // its value + $_SERVER['argv'] = array_values( $_SERVER['argv'] ); + } + $key = array_search( '--debug-tests', $_SERVER['argv'] ); if ( $key !== false && array_search( '--printer', $_SERVER['argv'] ) === false ) { unset( $_SERVER['argv'][$key] ); @@ -202,14 +222,19 @@ class PHPUnitMaintClass extends Maintenance { $maintClass = 'PHPUnitMaintClass'; require RUN_MAINTENANCE_IF_MAIN; -if ( !class_exists( 'PHPUnit_TextUI_Command' ) ) { +if ( !class_exists( 'PHPUnit_Framework_TestCase' ) ) { echo "PHPUnit not found. Please install it and other dev dependencies by running `composer install` in MediaWiki root directory.\n"; exit( 1 ); } +if ( !class_exists( $wgPhpUnitClass ) ) { + echo "PHPUnit entry point '" . $wgPhpUnitClass . "' not found. Please make sure you installed +the containing component and check the spelling of the class name.\n"; + exit( 1 ); +} echo defined( 'HHVM_VERSION' ) ? 'Using HHVM ' . HHVM_VERSION . ' (' . PHP_VERSION . ")\n" : 'Using PHP ' . PHP_VERSION . "\n"; -PHPUnit_TextUI_Command::main(); +$wgPhpUnitClass::main();