public function KernelTestBaseTest::run in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/simpletest/src/Tests/KernelTestBaseTest.php \Drupal\simpletest\Tests\KernelTestBaseTest::run()
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
- core/
modules/ simpletest/ src/ Tests/ KernelTestBaseTest.php, line 339 - Contains \Drupal\simpletest\Tests\KernelTestBaseTest.
Class
- KernelTestBaseTest
- Tests KernelTestBase functionality.
Namespace
Drupal\simpletest\TestsCode
public function run(array $methods = array()) {
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", array(
':type' => 'table',
':table_name' => '%',
':pattern' => 'sqlite_%',
))
->fetchAllKeyed(0, 0);
$this
->assertTrue(empty($result), 'All test tables have been removed.');
}
}