Tests: Provide clearer error when config is accessed via unit test
authorKosta Harlan <kharlan@wikimedia.org>
Thu, 5 Sep 2019 07:14:28 +0000 (09:14 +0200)
committerKosta Harlan <kharlan@wikimedia.org>
Thu, 5 Sep 2019 07:14:28 +0000 (09:14 +0200)
Bug: T231288
Change-Id: I67622f5ed5e9dc901f5b71a6a2f61cbebe51184b

tests/phpunit/MediaWikiUnitTestCase.php

index 3f876ae..4bd28b7 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 use PHPUnit\Framework\TestCase;
+use PHPUnit\Framework\Exception;
 
 /**
  * Base class for unit tests.
@@ -84,6 +85,22 @@ abstract class MediaWikiUnitTestCase extends TestCase {
                }
        }
 
+       /**
+        * @inheritDoc
+        */
+       protected function runTest() {
+               try {
+                       return parent::runTest();
+               } catch ( ConfigException $exception ) {
+                       throw new Exception(
+                               'Config variables must be mocked, they cannot be accessed directly in tests which extend '
+                               . self::class,
+                               $exception->getCode(),
+                               $exception
+                       );
+               }
+       }
+
        protected function tearDown() {
                if ( !defined( 'HHVM_VERSION' ) ) {
                        // Quick reset between tests