function KernelTestBase::bootEnvironment

Same name in other branches
  1. 8.9.x core/tests/Drupal/KernelTests/KernelTestBase.php \Drupal\KernelTests\KernelTestBase::bootEnvironment()
  2. 10 core/tests/Drupal/KernelTests/KernelTestBase.php \Drupal\KernelTests\KernelTestBase::bootEnvironment()
  3. 11.x core/tests/Drupal/KernelTests/KernelTestBase.php \Drupal\KernelTests\KernelTestBase::bootEnvironment()

Bootstraps a basic test environment.

Should not be called by tests. Only visible for DrupalKernel integration tests.

@internal

See also

\Drupal\KernelTests\Core\DrupalKernel\DrupalKernelTest

2 calls to KernelTestBase::bootEnvironment()
DrupalKernelTest::setUp in core/tests/Drupal/KernelTests/Core/DrupalKernel/DrupalKernelTest.php
KernelTestBase::setUp in core/tests/Drupal/KernelTests/KernelTestBase.php

File

core/tests/Drupal/KernelTests/KernelTestBase.php, line 272

Class

KernelTestBase
Base class for functional integration tests.

Namespace

Drupal\KernelTests

Code

protected function bootEnvironment() {
    \Drupal::unsetContainer();
    $this->classLoader = (require $this->root . '/autoload.php');
    // Set up virtual filesystem.
    Database::addConnectionInfo('default', 'test-runner', $this->getDatabaseConnectionInfo()['default']);
    $test_db = new TestDatabase();
    $this->siteDirectory = $test_db->getTestSitePath();
    // Ensure that all code that relies on drupal_valid_test_ua() can still be
    // safely executed. This primarily affects the (test) site directory
    // resolution (used by e.g. LocalStream and PhpStorage).
    $this->databasePrefix = $test_db->getDatabasePrefix();
    drupal_valid_test_ua($this->databasePrefix);
    $settings = [
        'hash_salt' => static::class,
        'file_public_path' => $this->siteDirectory . '/files',
        // Disable Twig template caching/dumping.
'twig_cache' => FALSE,
    ];
    new Settings($settings);
    $this->setUpFilesystem();
    foreach (Database::getAllConnectionInfo() as $key => $targets) {
        Database::removeConnection($key);
    }
    Database::addConnectionInfo('default', 'default', $this->getDatabaseConnectionInfo()['default']);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.