Handle phpunit being autoloaded from checkLess.php
authorErik Bernhardson <ebernhardson@wikimedia.org>
Mon, 8 Dec 2014 18:28:21 +0000 (10:28 -0800)
committerErik Bernhardson <ebernhardson@wikimedia.org>
Mon, 8 Dec 2014 18:30:01 +0000 (10:30 -0800)
When phpunit is available via the autoloader, rather than directly in the
include path, checkLess was erroring out.  Additionally
RequestContext::resetMain() was outputting warnings due to MW_PHPUNIT_TEST
not being defined.

Change-Id: I28921c018daa59b2da78ffb5312690d1ce8fbb0a

maintenance/checkLess.php

index b97e1b0..2f533cf 100644 (file)
@@ -22,7 +22,6 @@
  */
 
 require_once __DIR__ . '/Maintenance.php';
-require_once 'PHPUnit/Autoload.php';
 
 /**
  * @ingroup Maintenance
@@ -43,6 +42,17 @@ class CheckLess extends Maintenance {
                // require it here.
                require_once __DIR__ . '/../tests/TestsAutoLoader.php';
 
+               // If phpunit isn't available by autoloader try pulling it in
+               if ( !class_exists( 'PHPUnit_Framework_TestCase' ) ) {
+                       require_once 'PHPUnit/Autoload.php';
+               }
+
+               // RequestContext::resetMain() will print warnings unless this
+               // is defined.
+               if ( !defined( 'MW_PHPUNIT_TEST' ) ) {
+                       define( 'MW_PHPUNIT_TEST', true );
+               }
+
                $textUICommand = new PHPUnit_TextUI_Command();
                $argv = array(
                        "$IP/tests/phpunit/phpunit.php",