From c454a77916725a78401943b35d97eff29db89aad Mon Sep 17 00:00:00 2001 From: addshore Date: Mon, 5 May 2014 15:11:34 +0100 Subject: [PATCH] Move debug-tests out of MediaWikiPHPUnitCommand This also slightly refactors MediaWikiPHPUnitTestListener so we can pass it into phpunit directly using the --printer option Change-Id: I6a19e3902130eeba6a0941f24a4f440b712058e5 --- tests/phpunit/MediaWikiPHPUnitCommand.php | 20 ------------------- .../phpunit/MediaWikiPHPUnitTestListener.php | 17 ++++++++++------ tests/phpunit/phpunit.php | 14 +++++++++++++ 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/tests/phpunit/MediaWikiPHPUnitCommand.php b/tests/phpunit/MediaWikiPHPUnitCommand.php index fa863fc57f..62b9cfd872 100644 --- a/tests/phpunit/MediaWikiPHPUnitCommand.php +++ b/tests/phpunit/MediaWikiPHPUnitCommand.php @@ -12,7 +12,6 @@ class MediaWikiPHPUnitCommand extends PHPUnit_TextUI_Command { 'use-normal-tables' => false, 'reuse-db' => false, 'wiki=' => false, - 'debug-tests' => false, ); public function __construct() { @@ -21,22 +20,6 @@ class MediaWikiPHPUnitCommand extends PHPUnit_TextUI_Command { } } - 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 static function main( $exit = true ) { $command = new self; $command->run( $_SERVER['argv'], $exit ); @@ -66,9 +49,6 @@ Database options: --use-normal-tables Use normal DB tables. --reuse-db Init DB only if tables are missing and keep after finish. -Debugging options: - --debug-tests Log testing activity to the PHPUnitCommand log channel. - EOT; } } diff --git a/tests/phpunit/MediaWikiPHPUnitTestListener.php b/tests/phpunit/MediaWikiPHPUnitTestListener.php index 8c761b90d6..08463f1259 100644 --- a/tests/phpunit/MediaWikiPHPUnitTestListener.php +++ b/tests/phpunit/MediaWikiPHPUnitTestListener.php @@ -1,14 +1,11 @@ logChannel = $logChannel; - } + protected $logChannel = 'PHPUnitCommand'; protected function getTestName( PHPUnit_Framework_Test $test ) { $name = get_class( $test ); @@ -35,6 +32,7 @@ class MediaWikiPHPUnitTestListener implements PHPUnit_Framework_TestListener { * @param float $time */ public function addError( PHPUnit_Framework_Test $test, Exception $e, $time ) { + parent::addError( $test, $e, $time ); wfDebugLog( $this->logChannel, 'ERROR in ' . $this->getTestName( $test ) . ': ' . $this->getErrorName( $e ) @@ -51,6 +49,7 @@ class MediaWikiPHPUnitTestListener implements PHPUnit_Framework_TestListener { public function addFailure( PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time ) { + parent::addFailure( $test, $e, $time ); wfDebugLog( $this->logChannel, 'FAILURE in ' . $this->getTestName( $test ) . ': ' . $this->getErrorName( $e ) @@ -65,6 +64,7 @@ class MediaWikiPHPUnitTestListener implements PHPUnit_Framework_TestListener { * @param float $time */ public function addIncompleteTest( PHPUnit_Framework_Test $test, Exception $e, $time ) { + parent::addIncompleteTest( $test, $e, $time ); wfDebugLog( $this->logChannel, 'Incomplete test ' . $this->getTestName( $test ) . ': ' . $this->getErrorName( $e ) @@ -79,6 +79,7 @@ class MediaWikiPHPUnitTestListener implements PHPUnit_Framework_TestListener { * @param float $time */ public function addSkippedTest( PHPUnit_Framework_Test $test, Exception $e, $time ) { + parent::addSkippedTest( $test, $e, $time ); wfDebugLog( $this->logChannel, 'Skipped test ' . $this->getTestName( $test ) . ': ' . $this->getErrorName( $e ) @@ -91,6 +92,7 @@ class MediaWikiPHPUnitTestListener implements PHPUnit_Framework_TestListener { * @param PHPUnit_Framework_TestSuite $suite */ public function startTestSuite( PHPUnit_Framework_TestSuite $suite ) { + parent::startTestSuite( $suite ); wfDebugLog( $this->logChannel, 'START suite ' . $suite->getName() ); } @@ -100,6 +102,7 @@ class MediaWikiPHPUnitTestListener implements PHPUnit_Framework_TestListener { * @param PHPUnit_Framework_TestSuite $suite */ public function endTestSuite( PHPUnit_Framework_TestSuite $suite ) { + parent::endTestSuite( $suite ); wfDebugLog( $this->logChannel, 'END suite ' . $suite->getName() ); } @@ -109,6 +112,7 @@ class MediaWikiPHPUnitTestListener implements PHPUnit_Framework_TestListener { * @param PHPUnit_Framework_Test $test */ public function startTest( PHPUnit_Framework_Test $test ) { + parent::startTest( $test ); wfDebugLog( $this->logChannel, 'Start test ' . $this->getTestName( $test ) ); } @@ -119,6 +123,7 @@ class MediaWikiPHPUnitTestListener implements PHPUnit_Framework_TestListener { * @param float $time */ public function endTest( PHPUnit_Framework_Test $test, $time ) { + parent::endTest( $test, $time ); wfDebugLog( $this->logChannel, 'End test ' . $this->getTestName( $test ) ); } } diff --git a/tests/phpunit/phpunit.php b/tests/phpunit/phpunit.php index c7491d36b8..daf0a3a995 100755 --- a/tests/phpunit/phpunit.php +++ b/tests/phpunit/phpunit.php @@ -24,6 +24,12 @@ class PHPUnitMaintClass extends Maintenance { false, # not required true # need arg ); + $this->addOption( + 'debug-tests', + 'Log testing activity to the PHPUnitCommand log channel.', + false, # not required + false # no arg needed + ); } public function finalSetup() { @@ -123,6 +129,14 @@ class PHPUnitMaintClass extends Maintenance { ); array_splice( $_SERVER['argv'], 1, 0, '--include-path' ); } + + $key = array_search( '--debug-tests', $_SERVER['argv'] ); + if( $key !== false && array_search( '--printer', $_SERVER['argv'] ) === false ) { + unset( $_SERVER['argv'][$key] ); + array_splice( $_SERVER['argv'], 1, 0, 'MediaWikiPHPUnitTestListener' ); + array_splice( $_SERVER['argv'], 1, 0, '--printer' ); + } + } public function getDbType() { -- 2.20.1