function DriverSpecificKernelTestBase::setUp

Same name and namespace in other branches
  1. 9 core/tests/Drupal/KernelTests/Core/Database/DriverSpecificKernelTestBase.php \Drupal\KernelTests\Core\Database\DriverSpecificKernelTestBase::setUp()
  2. 10 core/tests/Drupal/KernelTests/Core/Database/DriverSpecificKernelTestBase.php \Drupal\KernelTests\Core\Database\DriverSpecificKernelTestBase::setUp()

Overrides KernelTestBase::setUp

7 calls to DriverSpecificKernelTestBase::setUp()
CastedIntFieldJoinTestBase::setUp in core/modules/views/tests/src/Kernel/Plugin/CastedIntFieldJoinTestBase.php
DbDumpCommandTest::setUp in core/modules/mysql/tests/src/Kernel/mysql/Console/DbDumpCommandTest.php
DbDumpTest::setUp in core/modules/mysql/tests/src/Kernel/mysql/DbDumpTest.php
DriverSpecificConnectionUnitTestBase::setUp in core/tests/Drupal/KernelTests/Core/Database/DriverSpecificConnectionUnitTestBase.php
DriverSpecificDatabaseTestBase::setUp in core/tests/Drupal/KernelTests/Core/Database/DriverSpecificDatabaseTestBase.php

... See full list

7 methods override DriverSpecificKernelTestBase::setUp()
CastedIntFieldJoinTestBase::setUp in core/modules/views/tests/src/Kernel/Plugin/CastedIntFieldJoinTestBase.php
DbDumpCommandTest::setUp in core/modules/mysql/tests/src/Kernel/mysql/Console/DbDumpCommandTest.php
DbDumpTest::setUp in core/modules/mysql/tests/src/Kernel/mysql/DbDumpTest.php
DriverSpecificConnectionUnitTestBase::setUp in core/tests/Drupal/KernelTests/Core/Database/DriverSpecificConnectionUnitTestBase.php
DriverSpecificDatabaseTestBase::setUp in core/tests/Drupal/KernelTests/Core/Database/DriverSpecificDatabaseTestBase.php

... See full list

File

core/tests/Drupal/KernelTests/Core/Database/DriverSpecificKernelTestBase.php, line 29

Class

DriverSpecificKernelTestBase
Base class for driver specific kernel tests.

Namespace

Drupal\KernelTests\Core\Database

Code

protected function setUp() : void {
    // Find the current SUT database driver from the connection info. If that
    // is not the one the test requires, skip before test database
    // initialization so to save cycles.
    $this->root = static::getDrupalRoot();
    chdir($this->root);
    $connectionInfo = $this->getDatabaseConnectionInfo();
    $test_class_parts = explode('\\', get_class($this));
    $expected_provider = $test_class_parts[2] ?? '';
    for ($i = 3; $i < count($test_class_parts); $i++) {
        if ($test_class_parts[$i] === 'Kernel') {
            $expected_driver = $test_class_parts[$i + 1] ?? '';
            break;
        }
    }
    if ($connectionInfo['default']['driver'] !== $expected_driver) {
        $this->markTestSkipped("This test only runs for the database driver '{$expected_driver}'. Current database driver is '{$connectionInfo['default']['driver']}'.");
    }
    parent::setUp();
    $this->connection = Database::getConnection();
    // After database initialization, the database driver may be not provided
    // by the expected module; skip test in that case.
    $running_provider = $this->connection
        ->getProvider();
    $running_driver = $this->connection
        ->driver();
    if ($running_provider !== $expected_provider || $running_driver !== $expected_driver) {
        $this->markTestSkipped("This test only runs for the database driver '{$expected_driver}' provided by the '{$expected_provider}' module. Connected database driver is '{$running_driver}' provided by '{$running_provider}'.");
    }
}

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