<?php declare(strict_types=1); namespace App\Tests; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\Tools\SchemaTool; use Override; use Symfony\Bundle\FrameworkBundle\KernelBrowser; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; abstract class DbWebTest extends WebTestCase { abstract public function getEntityClass(): string; protected KernelBrowser $client; protected EntityManagerInterface $manager; protected EntityRepository $repository; #[Override] protected function setUp(): void { $this->client = static::createClient(); $this->manager = static::getContainer()->get('doctrine')->getManager(); $schemaTool = new SchemaTool($this->manager); $metadata = $this->manager->getMetadataFactory() ->getAllMetadata(); $schemaTool->updateSchema($metadata); $this->repository = $this->manager->getRepository($this->getEntityClass()); foreach ($this->repository->findAll() as $object) { $this->manager->remove($object); } $this->manager->flush(); } }