Chris@17: containerBuild($container); Chris@17: } Chris@17: } Chris@17: Chris@17: /** Chris@17: * {@inheritdoc} Chris@17: */ Chris@17: public function alter(ContainerBuilder $container) { Chris@17: if (static::$currentTest instanceof KernelTestBase) { Chris@17: static::addRouteProvider($container); Chris@17: } Chris@17: } Chris@17: Chris@17: /** Chris@17: * Add the on demand rebuild route provider service. Chris@17: * Chris@17: * @param \Drupal\Core\DependencyInjection\ContainerBuilder $container Chris@17: */ Chris@17: public static function addRouteProvider(ContainerBuilder $container) { Chris@17: $route_provider_service_name = 'router.route_provider'; Chris@17: // While $container->get() does a recursive resolve, getDefinition() does Chris@17: // not, so do it ourselves. Chris@17: $id = $route_provider_service_name; Chris@17: while ($container->hasAlias($id)) { Chris@17: $id = (string) $container->getAlias($id); Chris@17: } Chris@17: $definition = $container->getDefinition($id); Chris@17: $definition->clearTag('needs_destruction'); Chris@17: $container->setDefinition("simpletest.$route_provider_service_name", $definition); Chris@17: $container->setDefinition($id, new Definition(RouteProvider::class)); Chris@17: } Chris@17: Chris@17: }