function KernelTestBaseTest::run
Overrides TestBase::run
File
-
core/
modules/ simpletest/ src/ Tests/ KernelTestBaseTest.php, line 339
Class
- KernelTestBaseTest
- Tests KernelTestBase functionality.
Namespace
Drupal\simpletest\TestsCode
public function run(array $methods = []) {
parent::run($methods);
// 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->schema()
->findTables($this->databasePrefix . '%');
$this->assertTrue(empty($tables), 'All test tables have been removed.');
}
else {
// We don't have the test instance connection anymore so we have to
// re-attach its database and then use the same query as
// \Drupal\Core\Database\Driver\sqlite\Schema::findTables().
// @see \Drupal\Core\Database\Driver\sqlite\Connection::__construct()
$info = Database::getConnectionInfo();
$connection->query('ATTACH DATABASE :database AS :prefix', [
':database' => $info['default']['database'] . '-' . $this->databasePrefix,
':prefix' => $this->databasePrefix,
]);
$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->assertTrue(empty($result), 'All test tables have been removed.');
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.