Restored the ability to run extension tests from the main runner
authorMax Semenik <maxsem@users.mediawiki.org>
Sat, 9 Oct 2010 19:17:20 +0000 (19:17 +0000)
committerMax Semenik <maxsem@users.mediawiki.org>
Sat, 9 Oct 2010 19:17:20 +0000 (19:17 +0000)
maintenance/tests/phpunit/suite.xml
maintenance/tests/phpunit/suites/ExtensionsTestSuite.php

index d430705..6ad6ec7 100644 (file)
@@ -20,6 +20,9 @@
                <testsuite name="uploadfromurl">
                        <file>./suites/UploadFromUrlTestSuite.php</file>
                </testsuite>
+               <testsuite name="extensions">
+                       <file>./suites/ExtensionsTestSuite.php</file>
+               </testsuite>
        </testsuites>
        <groups>
                <exclude>
index bdaea10..b97708a 100644 (file)
@@ -1,4 +1,34 @@
 <?php 
 /**
- * This is where a PHPUnit_Framework_TestSuite that runs extension tests through a hook or something should go.
- */
\ No newline at end of file
+ * This test suite runs unit tests registered by extensions.
+ * See http://www.mediawiki.org/wiki/Manual:Hooks/UnitTestsList for details of how to register your tests.
+ */
+
+ class ExtensionsTestSuite extends PHPUnit_Framework_TestSuite {
+       public function __construct() {
+               parent::__construct();
+               $files = array();
+               wfRunHooks( 'UnitTestsList', array( &$files ) );
+               var_dump($files);
+               foreach ( $files as $file ) {
+                       $this->addTestFile( $file );
+               }
+               if ( !count( $files ) ) {
+                       $this->addTest( new DummyExtensionsTest( 'testNothing' ) );
+               }
+       }
+
+       public static function suite() {
+               return new self;
+       }
+}
+
+/**
+ * Needed to avoid warnings like 'No tests found in class "ExtensionsTestSuite".'
+ * when no extensions with tests are used.
+ */
+class DummyExtensionsTest extends PHPUnit_Framework_TestCase {
+       public function testNothing() {
+               
+       }
+}
\ No newline at end of file