function KernelTestBaseTest::tearDown

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

Overrides KernelTestBase::tearDown

File

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

Class

KernelTestBaseTest
@coversDefaultClass <a href="/api/drupal/core%21tests%21Drupal%21KernelTests%21KernelTestBase.php/class/KernelTestBase/9" title="Base class for functional integration tests." class="local">\Drupal\KernelTests\KernelTestBase</a>

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') {
        $result = $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);
        $this->assertEmpty($result, 'All test tables have been removed.');
    }
    else {
        $tables = $connection->schema()
            ->findTables($this->databasePrefix . '%');
        $this->assertEmpty($tables, 'All test tables have been removed.');
    }
}

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