namespace ; use PHPUnit\Framework\MockObject\MockBuilder; use Symfony\Bundle\FrameworkBundle\Client; use Symfony\Bundle\FrameworkBundle\Console\Application; use Symfony\Bundle\FrameworkBundle\KernelBrowser; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; use Symfony\Component\BrowserKit\Cookie; use Symfony\Component\Console\Tester\CommandTester; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ResettableContainerInterface; use Symfony\Component\DomCrawler\Crawler; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; use Symfony\Component\Security\Core\User\UserInterface; class extends WebTestCase { public function test() { $this->runCommand(::getCommandName()); } /** * Builds up the environment to run the given command. * * @param string $name * @param array $params * @param bool $reuseKernel * * @return CommandTester */ protected function runCommand(string $name, array $params = [], bool $reuseKernel = false): CommandTester { if (!$reuseKernel) { if (null !== static::$kernel) { static::$kernel->shutdown(); } $kernel = static::$kernel = static::createKernel(['environment' => $this->environment]); $kernel->boot(); } else { $kernel = $this->getContainer()->get('kernel'); } $application = new Application($kernel); $options = [ 'interactive' => false, 'decorated' => $this->getDecorated(), 'verbosity' => $this->getVerbosityLevel(), ]; $command = $application->find($name); $commandTester = new CommandTester($command); if (null !== $inputs = $this->getInputs()) { $commandTester->setInputs($inputs); $options['interactive'] = true; $this->inputs = null; } $commandTester->execute( array_merge(['command' => $command->getName()], $params), $options ); return $commandTester; } }