You are here

class StubTestSuiteBase in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/Tests/Core/Test/TestSuiteBaseTest.php \Drupal\Tests\Core\Test\StubTestSuiteBase
  2. 10 core/tests/Drupal/Tests/Core/Test/TestSuiteBaseTest.php \Drupal\Tests\Core\Test\StubTestSuiteBase

Stub subclass of TestSuiteBase.

We use this class to alter the behavior of TestSuiteBase so it can be testable.

Hierarchy

Expanded class hierarchy of StubTestSuiteBase

File

core/tests/Drupal/Tests/Core/Test/TestSuiteBaseTest.php, line 121

Namespace

Drupal\Tests\Core\Test
View source
class StubTestSuiteBase extends TestSuiteBase {

  /**
   * Test files discovered by addTestsBySuiteNamespace().
   *
   * @var string[]
   */
  public $testFiles = [];

  /**
   * {@inheritdoc}
   */
  protected function findExtensionDirectories($root) {

    // We have to stub findExtensionDirectories() because we can't inject a
    // vfsStream filesystem into drupal_phpunit_find_extension_directories(),
    // which uses \SplFileInfo->getRealPath(). getRealPath() resolves
    // stream-based paths to an empty string. See
    // https://github.com/mikey179/vfsStream/wiki/Known-Issues
    return [];
  }

  /**
   * {@inheritdoc}
   */
  public function addTestFiles($filenames) : void {

    // We stub addTestFiles() because the parent implementation can't deal with
    // vfsStream-based filesystems due to an error in
    // stream_resolve_include_path(). See
    // https://github.com/mikey179/vfsStream/issues/5 Here we just store the
    // test file being added in $this->testFiles.
    $this->testFiles = array_merge($this->testFiles, $filenames);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
StubTestSuiteBase::$testFiles public property Test files discovered by addTestsBySuiteNamespace().
StubTestSuiteBase::addTestFiles public function
StubTestSuiteBase::findExtensionDirectories protected function Finds extensions in a Drupal installation. Overrides TestSuiteBase::findExtensionDirectories
TestSuiteBase::addTestsBySuiteNamespace protected function Find and add tests to the suite for core and any extensions.