public function KernelTestBaseTest::run in SimpleTest 8.3
Run all tests in this class.
Regardless of whether $methods are passed or not, only method names starting with "test" are executed.
Parameters
$methods: (optional) A list of method names in the test case class to run; e.g., array('testFoo', 'testBar'). By default, all methods of the class are taken into account, but it can be useful to only run a few selected test methods during debugging.
Overrides TestBase::run
File
- 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.');
}
}