diff options
Diffstat (limited to 'tests/phpunit/phpunit.php')
-rw-r--r-- | tests/phpunit/phpunit.php | 56 |
1 files changed, 34 insertions, 22 deletions
diff --git a/tests/phpunit/phpunit.php b/tests/phpunit/phpunit.php index bcbf4ec1..1d65e521 100644 --- a/tests/phpunit/phpunit.php +++ b/tests/phpunit/phpunit.php @@ -8,23 +8,20 @@ /* Configuration */ -// Evaluate the include path relative to this file -$IP = dirname( dirname( __DIR__ ) ); - // Set a flag which can be used to detect when other scripts have been entered through this entry point or not define( 'MW_PHPUNIT_TEST', true ); // Start up MediaWiki in command-line mode -require_once( "$IP/maintenance/Maintenance.php" ); +require_once dirname( dirname( __DIR__ ) ) . "/maintenance/Maintenance.php"; class PHPUnitMaintClass extends Maintenance { function __construct() { parent::__construct(); - $this->addOption( 'with-phpunitdir' - , 'Directory to include PHPUnit from, for example when using a git fetchout from upstream. Path will be prepended to PHP `include_path`.' - , false # not required - , true # need arg + $this->addOption( 'with-phpunitdir', + 'Directory to include PHPUnit from, for example when using a git fetchout from upstream. Path will be prepended to PHP `include_path`.', + false, # not required + true # need arg ); } @@ -36,6 +33,9 @@ class PHPUnitMaintClass extends Maintenance { global $wgLocaltimezone, $wgLocalisationCacheConf; global $wgDevelopmentWarnings; + // Inject test autoloader + require_once __DIR__ . '/../TestsAutoLoader.php'; + // wfWarn should cause tests to fail $wgDevelopmentWarnings = true; @@ -49,26 +49,35 @@ class PHPUnitMaintClass extends Maintenance { // Assume UTC for testing purposes $wgLocaltimezone = 'UTC'; - $wgLocalisationCacheConf['storeClass'] = 'LCStore_Null'; + $wgLocalisationCacheConf['storeClass'] = 'LCStore_Null'; + + // Bug 44192 Do not attempt to send a real e-mail + Hooks::clear( 'AlternateUserMailer' ); + Hooks::register( + 'AlternateUserMailer', + function () { + return false; + } + ); } public function execute() { global $IP; # Make sure we have --configuration or PHPUnit might complain - if( !in_array( '--configuration', $_SERVER['argv'] ) ) { + if ( !in_array( '--configuration', $_SERVER['argv'] ) ) { //Hack to eliminate the need to use the Makefile (which sucks ATM) array_splice( $_SERVER['argv'], 1, 0, array( '--configuration', $IP . '/tests/phpunit/suite.xml' ) ); } # --with-phpunitdir let us override the default PHPUnit version - if( $phpunitDir = $this->getOption( 'with-phpunitdir' ) ) { + if ( $phpunitDir = $this->getOption( 'with-phpunitdir' ) ) { # Sanity checks - if( !is_dir($phpunitDir) ) { + if ( !is_dir( $phpunitDir ) ) { $this->error( "--with-phpunitdir should be set to an existing directory", 1 ); } - if( !is_readable( $phpunitDir."/PHPUnit/Runner/Version.php" ) ) { + if ( !is_readable( $phpunitDir . "/PHPUnit/Runner/Version.php" ) ) { $this->error( "No usable PHPUnit installation in $phpunitDir.\nAborting.\n", 1 ); } @@ -80,10 +89,9 @@ class PHPUnitMaintClass extends Maintenance { # Cleanup $args array so the option and its value do not # pollute PHPUnit $key = array_search( '--with-phpunitdir', $_SERVER['argv'] ); - unset( $_SERVER['argv'][$key] ); // the option - unset( $_SERVER['argv'][$key+1] ); // its value + unset( $_SERVER['argv'][$key] ); // the option + unset( $_SERVER['argv'][$key + 1] ); // its value $_SERVER['argv'] = array_values( $_SERVER['argv'] ); - } } @@ -93,15 +101,19 @@ class PHPUnitMaintClass extends Maintenance { } $maintClass = 'PHPUnitMaintClass'; -require( RUN_MAINTENANCE_IF_MAIN ); +require RUN_MAINTENANCE_IF_MAIN; -require_once( 'PHPUnit/Runner/Version.php' ); +if ( !class_exists( 'PHPUnit_Runner_Version' ) ) { + require_once 'PHPUnit/Runner/Version.php'; +} -if( PHPUnit_Runner_Version::id() !== '@package_version@' - && version_compare( PHPUnit_Runner_Version::id(), '3.6.7', '<' ) ) { +if ( PHPUnit_Runner_Version::id() !== '@package_version@' + && version_compare( PHPUnit_Runner_Version::id(), '3.6.7', '<' ) +) { die( 'PHPUnit 3.6.7 or later required, you have ' . PHPUnit_Runner_Version::id() . ".\n" ); } -require_once( 'PHPUnit/Autoload.php' ); -require_once( "$IP/tests/TestsAutoLoader.php" ); +if ( !class_exists( 'PHPUnit_TextUI_Command' ) ) { + require_once 'PHPUnit/Autoload.php'; +} MediaWikiPHPUnitCommand::main(); |