class TestRunnerKernel
Same name in other branches
- 9 core/lib/Drupal/Core/Test/TestRunnerKernel.php \Drupal\Core\Test\TestRunnerKernel
- 8.9.x core/lib/Drupal/Core/Test/TestRunnerKernel.php \Drupal\Core\Test\TestRunnerKernel
- 11.x core/lib/Drupal/Core/Test/TestRunnerKernel.php \Drupal\Core\Test\TestRunnerKernel
Defines a kernel used for running Functional tests and run-tests.sh.
@internal
Hierarchy
- class \Drupal\Core\DrupalKernel implements \Drupal\Core\DrupalKernelInterface, \Symfony\Component\HttpKernel\TerminableInterface uses \Drupal\Core\Installer\InstallerRedirectTrait
- class \Drupal\Core\Test\TestRunnerKernel extends \Drupal\Core\DrupalKernel
Expanded class hierarchy of TestRunnerKernel
File
-
core/
lib/ Drupal/ Core/ Test/ TestRunnerKernel.php, line 15
Namespace
Drupal\Core\TestView source
class TestRunnerKernel extends DrupalKernel {
/**
* {@inheritdoc}
*/
public static function createFromRequest(Request $request, $class_loader, $environment = 'test_runner', $allow_dumping = TRUE, $app_root = NULL) {
return parent::createFromRequest($request, $class_loader, $environment, $allow_dumping, $app_root);
}
/**
* {@inheritdoc}
*/
public function __construct($environment, $class_loader, $allow_dumping = FALSE, $app_root = NULL) {
// Force $allow_dumping to FALSE, because the test runner kernel should
// always have to rebuild its container, and potentially avoid isolation
// issues against the tests.
parent::__construct($environment, $class_loader, FALSE, $app_root);
// Prime the module list and corresponding Extension objects.
// @todo Remove System module. Needed because
// \Drupal\Core\Datetime\DateFormatter has a (needless) dependency on the
// 'date_format' entity, so calls to DateFormatter::format() and
// DateFormatter::formatInterval() cause a plugin not found exception.
$this->moduleList = [
'system' => 0,
];
$this->moduleData = [
'system' => new Extension($this->root, 'module', 'core/modules/system/system.info.yml', 'system.module'),
];
}
/**
* {@inheritdoc}
*/
public function boot() {
// Ensure that required Settings exist.
if (!Settings::getAll()) {
new Settings([
'hash_salt' => 'run-tests',
'container_yamls' => [],
// If there is no settings.php, then there is no parent site. In turn,
// there is no public files directory; use a custom public files path.
'file_public_path' => 'sites/default/files',
]);
}
// Remove Drupal's error/exception handlers; they are designed for HTML
// and there is no storage nor a (watchdog) logger here.
restore_error_handler();
restore_exception_handler();
// In addition, ensure that PHP errors are not hidden away in logs.
ini_set('display_errors', TRUE);
parent::boot();
$this->getContainer()
->get('module_handler')
->loadAll();
$test_discovery = new TestDiscovery($this->getContainer()
->getParameter('app.root'), $this->getContainer()
->get('class_loader'));
$test_discovery->registerTestNamespaces();
// Register stream wrappers.
$this->getContainer()
->get('stream_wrapper_manager')
->register();
// Create the build/artifacts directory if necessary.
if (!is_dir('public://simpletest') && !@mkdir('public://simpletest', 0777, TRUE) && !is_dir('public://simpletest')) {
throw new \RuntimeException('Unable to create directory: public://simpletest');
}
return $this;
}
/**
* {@inheritdoc}
*/
public function discoverServiceProviders() {
parent::discoverServiceProviders();
// The test runner does not require an installed Drupal site to exist.
// Therefore, its environment is identical to that of the early installer.
$this->serviceProviderClasses['app']['Test'] = 'Drupal\\Core\\Installer\\InstallerServiceProvider';
return $this->serviceProviderClasses;
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|---|
DrupalKernel::$allowDumping | protected | property | Whether the container can be dumped. | |||
DrupalKernel::$booted | protected | property | Whether the kernel has been booted. | |||
DrupalKernel::$bootstrapContainer | protected | property | Holds the bootstrap container. | |||
DrupalKernel::$bootstrapContainerClass | protected | property | Holds the class used for instantiating the bootstrap container. | |||
DrupalKernel::$classLoader | protected | property | The class loader object. | |||
DrupalKernel::$configStorage | protected | property | Config storage object used for reading enabled modules configuration. | |||
DrupalKernel::$container | protected | property | Holds the container instance. | |||
DrupalKernel::$containerNeedsDumping | protected | property | Whether the container needs to be dumped once booting is complete. | |||
DrupalKernel::$containerNeedsRebuild | protected | property | Whether the container needs to be rebuilt the next time it is initialized. | |||
DrupalKernel::$defaultBootstrapContainerDefinition | protected | property | Holds the default bootstrap container definition. | |||
DrupalKernel::$environment | protected | property | The environment, e.g. 'testing', 'install'. | |||
DrupalKernel::$isEnvironmentInitialized | protected static | property | Whether the PHP environment has been initialized. | |||
DrupalKernel::$moduleData | protected | property | List of available modules and installation profiles. | |||
DrupalKernel::$moduleList | protected | property | Holds the list of enabled modules. | |||
DrupalKernel::$phpArrayDumperClass | protected | property | Holds the class used for dumping the container to a PHP array. | |||
DrupalKernel::$prepared | protected | property | Whether essential services have been set up properly by preHandle(). | |||
DrupalKernel::$root | protected | property | The app root. | |||
DrupalKernel::$serviceIdMapping | Deprecated | protected | property | A mapping from service classes to service IDs. | ||
DrupalKernel::$serviceProviderClasses | protected | property | List of discovered service provider class names or objects. | |||
DrupalKernel::$serviceProviders | protected | property | List of instantiated service provider classes. | |||
DrupalKernel::$serviceYamls | protected | property | List of discovered services.yml path names. | |||
DrupalKernel::$sitePath | protected | property | The site path directory. | |||
DrupalKernel::addServiceFiles | protected | function | Add service files. | |||
DrupalKernel::attachSynthetic | protected | function | Attach synthetic values on to kernel. | |||
DrupalKernel::bootEnvironment | public static | function | Setup a consistent PHP environment. | |||
DrupalKernel::cacheDrupalContainer | protected | function | Stores the container definition in a cache. | 1 | ||
DrupalKernel::classLoaderAddMultiplePsr4 | protected | function | Registers a list of namespaces with PSR-4 directories for class loading. | |||
DrupalKernel::collectServiceIdMapping | Deprecated | protected | function | Collect a mapping between service to ids. | ||
DrupalKernel::compileContainer | protected | function | Compiles a new service container. | |||
DrupalKernel::findSitePath | public static | function | Returns the appropriate site directory for a request. | |||
DrupalKernel::generateServiceIdHash | Deprecated | public static | function | Generate a unique hash for a service object. | ||
DrupalKernel::getAppRoot | public | function | Gets the app root. | Overrides DrupalKernelInterface::getAppRoot | ||
DrupalKernel::getCachedContainerDefinition | public | function | Returns the cached container definition - if any. | Overrides DrupalKernelInterface::getCachedContainerDefinition | ||
DrupalKernel::getConfigStorage | protected | function | Returns the active configuration storage to use during building the container. | 1 | ||
DrupalKernel::getContainer | public | function | Gets the current container. | Overrides DrupalKernelInterface::getContainer | ||
DrupalKernel::getContainerBuilder | protected | function | Gets a new ContainerBuilder instance used to build the service container. | |||
DrupalKernel::getContainerCacheKey | protected | function | Returns the container cache key based on the environment. | |||
DrupalKernel::getHttpKernel | protected | function | Gets a http kernel from the container. | |||
DrupalKernel::getInstallProfile | protected | function | Gets the active install profile. | 1 | ||
DrupalKernel::getKernelParameters | protected | function | Returns the kernel parameters. | |||
DrupalKernel::getModuleFileNames | protected | function | Gets the file name for each enabled module. | |||
DrupalKernel::getModuleNamespacesPsr4 | protected | function | Gets the PSR-4 base directories for module namespaces. | |||
DrupalKernel::getModulesParameter | protected | function | Returns an array of Extension class parameters for all enabled modules. | |||
DrupalKernel::getServiceIdMapping | public | function | Get a mapping from service hashes to service IDs. | Overrides DrupalKernelInterface::getServiceIdMapping | ||
DrupalKernel::getServiceProviders | public | function | Returns all registered service providers. | Overrides DrupalKernelInterface::getServiceProviders | ||
DrupalKernel::getServicesToPersist | protected | function | Returns service instances to persist from an old container to a new one. | |||
DrupalKernel::getSitePath | public | function | Gets the site path directory. | Overrides DrupalKernelInterface::getSitePath | ||
DrupalKernel::guessApplicationRoot | protected static | function | Determine the application root directory based on this file's location. | |||
DrupalKernel::handle | public | function | 1 | |||
DrupalKernel::handleException | protected | function | Converts an exception into a response. | |||
DrupalKernel::initializeContainer | protected | function | Initializes the service container. | 2 | ||
DrupalKernel::initializeEphemeralSession | protected | function | Initializes a session backed by in-memory store and puts it on the request. | |||
DrupalKernel::initializeRequestGlobals | protected | function | Bootstraps the legacy global request variables. | |||
DrupalKernel::initializeServiceProviders | protected | function | Registers all service providers to the kernel. | |||
DrupalKernel::initializeSettings | protected | function | Locate site path and initialize settings singleton. | |||
DrupalKernel::invalidateContainer | public | function | Invalidate the service container for the next request. | Overrides DrupalKernelInterface::invalidateContainer | ||
DrupalKernel::loadLegacyIncludes | public | function | Helper method that loads legacy Drupal include files. | Overrides DrupalKernelInterface::loadLegacyIncludes | ||
DrupalKernel::moduleData | protected | function | Returns module data on the filesystem. | |||
DrupalKernel::persistServices | protected | function | Moves persistent service instances into a new container. | |||
DrupalKernel::preHandle | public | function | Helper method that does request related initialization. | Overrides DrupalKernelInterface::preHandle | ||
DrupalKernel::rebuildContainer | public | function | Force a container rebuild. | Overrides DrupalKernelInterface::rebuildContainer | ||
DrupalKernel::resetContainer | public | function | Force a container reset. | Overrides DrupalKernelInterface::resetContainer | ||
DrupalKernel::setContainer | public | function | phpcs:ignore Drupal.Commenting.FunctionComment.VoidReturn phpcs:ignore Drupal.Commenting.FunctionComment.InvalidReturnVoid |
|||
DrupalKernel::setSitePath | public | function | Set the current site path directory. | Overrides DrupalKernelInterface::setSitePath | ||
DrupalKernel::setupTrustedHosts | protected static | function | Sets up the lists of trusted HTTP Host headers. | |||
DrupalKernel::shutdown | public | function | Shuts down the kernel. | Overrides DrupalKernelInterface::shutdown | ||
DrupalKernel::terminate | public | function | phpcs:ignore Drupal.Commenting.FunctionComment.VoidReturn | |||
DrupalKernel::updateModules | public | function | Implements Drupal\Core\DrupalKernelInterface::updateModules(). | Overrides DrupalKernelInterface::updateModules | ||
DrupalKernel::validateHostname | public static | function | Validates the hostname supplied from the HTTP request. | |||
DrupalKernel::validateHostnameLength | protected static | function | Validates a hostname length. | |||
DrupalKernelInterface::CONTAINER_INITIALIZE_SUBREQUEST_FINISHED | constant | Event fired when the service container finished initializing in subrequest. | ||||
InstallerRedirectTrait::isCli | protected | function | Returns whether the current PHP process runs on CLI. | |||
InstallerRedirectTrait::shouldRedirectToInstaller | protected | function | Determines if an exception handler should redirect to the installer. | |||
TestRunnerKernel::boot | public | function | Boots the current kernel. | Overrides DrupalKernel::boot | ||
TestRunnerKernel::createFromRequest | public static | function | Create a DrupalKernel object from a request. | Overrides DrupalKernel::createFromRequest | ||
TestRunnerKernel::discoverServiceProviders | public | function | Discovers available serviceProviders. | Overrides DrupalKernel::discoverServiceProviders | ||
TestRunnerKernel::__construct | public | function | Constructs a DrupalKernel object. | Overrides DrupalKernel::__construct |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.