function KernelTestBaseTest::tearDown

Same name in other branches
  1. 9 core/tests/Drupal/KernelTests/KernelTestBaseTest.php \Drupal\KernelTests\KernelTestBaseTest::tearDown()
  2. 8.9.x core/tests/Drupal/KernelTests/KernelTestBaseTest.php \Drupal\KernelTests\KernelTestBaseTest::tearDown()
  3. 10 core/tests/Drupal/KernelTests/KernelTestBaseTest.php \Drupal\KernelTests\KernelTestBaseTest::tearDown()

Overrides KernelTestBase::tearDown

File

core/tests/Drupal/KernelTests/KernelTestBaseTest.php, line 268

Class

KernelTestBaseTest
@coversDefaultClass \Drupal\KernelTests\KernelTestBase

Namespace

Drupal\KernelTests

Code

protected function tearDown() : void {
    parent::tearDown();
    // Check that all tables of the test instance have been deleted. At this
    // point the original database connection is restored so we need to prefix
    // the tables.
    $connection = Database::getConnection();
    if ($connection->databaseType() === 'sqlite') {
        $tables = $connection->query("SELECT name FROM " . $this->databasePrefix . ".sqlite_master WHERE type = :type AND name LIKE :table_name AND name NOT LIKE :pattern", [
            ':type' => 'table',
            ':table_name' => '%',
            ':pattern' => 'sqlite_%',
        ])
            ->fetchAllKeyed(0, 0);
    }
    else {
        $tables = $connection->schema()
            ->findTables($this->databasePrefix . '%');
    }
    if (!empty($tables)) {
        throw new \RuntimeException("Not all test tables were removed");
    }
}

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