Михаил
у тебя ни то ни другое не происходит
Михаил
почему? Потому что тесты ничего про это не знают
Михаил
phpunit это framework agnostic либа - значит ты должен сам позаботится об этом
Рома
а как востановить?
Михаил
Я не знаю что ты делаешь - но следуя официальным гайдам по установки тестов в симфу - у меня всё работае
Рома
и почему тестова папка не создается сама
Рома
её нужно вручную создать ?
Михаил
нет
Михаил
Короче есть очень хорошая цитата Если я в чём-то сомневаюсь, я возвращаюсь к началу. — Альбус Дамблдор
Рома
вот что в <?php use Symfony\Component\Dotenv\Dotenv; require dirname(__DIR__).'/vendor/autoload.php'; if (method_exists(Dotenv::class, 'bootEnv')) { (new Dotenv())->bootEnv(dirname(__DIR__).'/.env'); } if ($_SERVER['APP_DEBUG']) { umask(0000); }
Павел
вот что в <?php use Symfony\Component\Dotenv\Dotenv; require dirname(__DIR__).'/vendor/autoload.php'; if (method_exists(Dotenv::class, 'bootEnv')) { (new Dotenv())->bootEnv(dirname(__DIR__).'/.env'); } if ($_SERVER['APP_DEBUG']) { umask(0000); }
Запустите голую симфу с нуля рядом с полным обмундированием, возьмите доку и сисфони каст и запустите один тест
Михаил
Рома
да уже проще Symfony\Component\DependencyInjection\Exception\EnvNotFoundException: Environment variable not found: "DATABASE_URL".
Рома
странно почему phpstorm показывает другую ошибку
Павел
странно почему phpstorm показывает другую ошибку
Прежде всего запускайте из консоли, потому что шторм надо настраивать отдельно
Павел
Если добились запуска тестов из консоли, значит настроили правильно апп. Дальше уже переходить к шторму
Рома
кто подскажет что за баг? определяет не тот метод должен быть этот vendor/liip/test-fixtures-bundle/src/Services/DatabaseToolCollection.php public function get($omName = null, $registryName = 'doctrine', int $purgeMode = null): AbstractDatabaseTool а симфони подтягивает этот vendor/symfony/dependency-injection/Container.php public function get(string $id, int $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE): ?object static::getContainer()->get(DatabaseToolCollection::class)->get()
Рома
по докуметнации аргумента быть не должно и не находит метод loadFixtures
Рома
должен цепляться метод из класса, а почему то он цепляет из di
Михаил
Ide так подсказывает?
Рома
да и ошибка в консоли что требуется аргумент
Михаил
dd(static::getContainer()->get(DatabaseToolCollection::class)->get(…));
Михаил
Сделай так
Михаил
Буквально так
Михаил
Что-то нашёл?
Рома
Что-то нашёл?
roman@roman-MaiBook-M:~/tests/fix/proc_apps_symfony$ ./vendor/bin/phpunit Cannot load Xdebug - it was already loaded Xdebug: [Log Files] File '/var/log/nginx/xdebug.log' could not be opened. Xdebug: [Step Debug] Could not connect to debugging client. Tried: 127.0.0.1:9003 (through xdebug.client_host/xdebug.client_port). PHPUnit 10.5.16 by Sebastian Bergmann and contributors. Runtime: PHP 8.2.17 Configuration: /home/roman/tests/fix/proc_apps_symfony/phpunit.xml E 1 / 1 (100%) Time: 00:00.041, Memory: 16.00 MB There was 1 error: 1) App\Tests\StmtServiceTest::testSearchFilterSuccess Symfony\Component\DependencyInjection\Exception\EnvNotFoundException: Environment variable not found: "DATABASE_URL". /home/roman/tests/fix/proc_apps_symfony/vendor/symfony/dependency-injection/EnvVarProcessor.php:217 /home/roman/tests/fix/proc_apps_symfony/vendor/symfony/dependency-injection/Container.php:368 /home/roman/tests/fix/proc_apps_symfony/vendor/symfony/dependency-injection/EnvVarProcessor.php:165 /home/roman/tests/fix/proc_apps_symfony/vendor/symfony/dependency-injection/Container.php:368 /home/roman/tests/fix/proc_apps_symfony/var/cache/test/ContainerU2heRif/App_KernelTestDebugContainer.php:337 /home/roman/tests/fix/proc_apps_symfony/vendor/symfony/dependency-injection/Container.php:222 /home/roman/tests/fix/proc_apps_symfony/vendor/symfony/dependency-injection/Container.php:202 /home/roman/tests/fix/proc_apps_symfony/vendor/symfony/doctrine-bridge/ManagerRegistry.php:31 /home/roman/tests/fix/proc_apps_symfony/vendor/doctrine/persistence/src/Persistence/AbstractManagerRegistry.php:106 /home/roman/tests/fix/proc_apps_symfony/vendor/liip/test-fixtures-bundle/src/Services/DatabaseToolCollection.php:55 /home/roman/tests/fix/proc_apps_symfony/tests/StmtServiceTest.php:39 ERRORS! Tests: 1, Assertions: 0, Errors: 1. Xdebug: [Step Debug] Could not connect to debugging client. Tried: 127.0.0.1:9003 (through xdebug.client_host/xdebug.client_port). Xdebug: [Step Debug] Could not connect to debugging client. Tried: 127.0.0.1:9003 (through xdebug.client_host/xdebug.client_port). Xdebug: [Step Debug] Could not connect to debugging client. Tried: 127.0.0.1:9003 (through xdebug.client_host/xdebug.client_port). roman@roman-MaiBook-M:~/tests/fix/proc_apps_symfony$
Михаил
Это не аутпут dd
Рома
это ошибка если вызвать метод get
Рома
если убрать будет содержимое класса Liip\TestFixturesBundle\Services\DatabaseToolCollection {#675 -container: ContainerU2heRif\App_KernelTestDebugContainer {#632 …20} -annotationReader: null -items: array:3 [ "ORM" => array:2 [ "default" => Liip\TestFixturesBundle\Services\DatabaseTools\ORMDatabaseTool {#676 #container: ContainerU2heRif\App_KernelTestDebugContainer {#632 …20} #eventDispatcher: Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher {#103 …8} #fixturesLoaderFactory: Liip\TestFixturesBundle\Services\FixturesLoaderFactory {#677 -container: ContainerU2heRif\App_KernelTestDebugContainer {#632 …20} -loader: Doctrine\Bundle\FixturesBundle\Loader\SymfonyFixturesLoader {#678 -fixtures: array:1 [ "App\DataFixtures\AppFixtures" => App\DataFixtures\AppFixtures {#98 #referenceRepository: null } ] -orderedFixtures: [] -orderFixturesByNumber: false -orderFixturesByDependencies: false -fileExtension: ".php" -loadedFixtures: array:1 [ "App\DataFixtures\AppFixtures" => App\DataFixtures\AppFixtures {#98} ] -groupsFixtureMapping: array:1 [ "AppFixtures" => array:1 [ "App\DataFixtures\AppFixtures" => true ] ] } } #registry: null #omName: null #registryName: "doctrine" #om: null #purgeMode: null #databaseCacheEnabled: true #excludedDoctrineTables: [] #connection: ? Doctrine\DBAL\Connection -shouldEnableForeignKeyChecks: false } "Doctrine\DBAL\Platforms\SqlitePlatform" => Liip\TestFixturesBundle\Services\DatabaseTools\ORMSqliteDatabaseTool {#639 #container: ContainerU2heRif\App_KernelTestDebugContainer {#632 …20} #eventDispatcher: Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher {#103 …8} #fixturesLoaderFactory: Liip\TestFixturesBundle\Services\FixturesLoaderFactory {#677} #registry: null #omName: null #registryName: "doctrine" #om: null #purgeMode: null #databaseCacheEnabled: true #excludedDoctrineTables: [] #connection: ? Doctrine\DBAL\Connection -shouldEnableForeignKeyChecks: false -shouldEnableForeignKeyChecks: false } ] "MongoDB" => array:1 [ "default" => Liip\TestFixturesBundle\Services\DatabaseTools\MongoDBDatabaseTool {#654 #container: ContainerU2heRif\App_KernelTestDebugContainer {#632 …20} #eventDispatcher: Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher {#103 …8} #fixturesLoaderFactory: Liip\TestFixturesBundle\Services\MongoDBFixturesLoaderFactory {#653 -container: ContainerU2heRif\App_KernelTestDebugContainer {#632 …20} -loader: null } #registry: null #omName: null #registryName: "doctrine" #om: null #purgeMode: null #databaseCacheEnabled: true #excludedDoctrineTables: [] } ] "PHPCR" => array:1 [ "default" => Liip\TestFixturesBundle\Services\DatabaseTools\PHPCRDatabaseTool {#651 #container: ContainerU2heRif\App_KernelTestDebugContainer {#632 …20} #eventDispatcher: Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher {#103 …8} #fixturesLoaderFactory: Liip\TestFixturesBundle\Services\FixturesLoaderFactory {#677} #registry: null #omName: null #registryName: "doctrine" #om: null #purgeMode: null #databaseCacheEnabled: true #excludedDoctrineTables: [] } ] ] }
Михаил
это ошибка если вызвать метод get
А я не прошу вызывать метод гет
Михаил
Покажи как ты вызываешь после того как я попросил
Рома
Михаил
у тебя аллергия на выполнения точных инструкций? где 3 точки внутри скобок?
Рома
а так ты неправильные точки написал
Михаил
да телега кусок говна
Рома
Рома
Liip\TestFixturesBundle\Services\DatabaseToolCollection::get($omName = null, $registryName = 'doctrine', int $purgeMode = null): AbstractDatabaseTool {#652 returnType: "Liip\TestFixturesBundle\Services\DatabaseTools\AbstractDatabaseTool" this: Liip\TestFixturesBundle\Services\DatabaseToolCollection {#675 …} }
Nikolay
да телега кусок говна
Нет, ты должен извинится перед ним!
Nikolay
Не видишь же он тупо копипастит!
Рома
а что это за оператор такой вообще?
Рома
обычно это используют для распаковки массива на аргументы метода
Михаил
типо array_map($object->mapThis(...), $collection); вместо array_map(fn ($a) => $object->mapThis($a), $collection);
Михаил
и что здесь? видишь проблему?
нет, у Николая static::getContainer()->get(DatabaseToolCollection::class) вернул объект DatabaseToolCollection а у тебя судя по тому что ты говоришь возвращает объект контейнера
Михаил
как ты до такого симфу довёл что у тебя контейнер возвращает контейнер - я не знаю
Михаил
видимо поздравления с 1 апреля
Михаил
Но ты говоришь что это ide так пишет
Рома
может будет интересно кому посмотреть мой случай)?
Михаил
я попросил выполнить dd(static::getContainer()->get(DatabaseToolCollection::class)->get(…)); для того, чтобы узнать КАКОЙ именно контейнер возвращает или может IDE врёт
Михаил
может будет интересно кому посмотреть мой случай)?
Задеплой в гитхаб - так будет проще
Михаил
потому что судя по всему DatabaseToolCollection тоже имеет внутри себя контейнер
Рома
https://github.com/POMXARK/proc_apps_symfony/tree/develop
Михаил
ну и бандлов ты понакачал
Рома
стандартные это всё по видеокурсам
Рома
https://www.youtube.com/watch?v=phaQH_Cq_3E&t=320s я не делал настройку в yml может быть поэтому не работает
Михаил
@RomanITK извините но так в лом делать мр
Михаил
это шутка?
а я смеюсь?
Михаил
Я щас подгрузил фикстуры - и у меня симфа пытается к бд подключиться
Михаил
И нет ошибки "нет ENV переменной"
Рома
патч применил и нечего не поменялось
Михаил
и тесты без ошибок работаеют
Михаил
Ну
Михаил
static::getContainer()->get(DatabaseToolCollection::class)->get()->loadFixtures([ StmtFixture::class ]);
Михаил
поменяй на это твоё dd
Рома
эх походу не судьба стать симфонистом
Рома
1) App\Tests\StmtServiceTest::testSearchFilterSuccess Symfony\Component\DependencyInjection\Exception\EnvNotFoundException: Environment variable not found: "DATABASE_URL".
Рома
надо скачать с гита свой проект может
Рома
а должно работать, через докер
Рома
сгенерировать .env.local
Михаил
Ну не должно. Если тесты запустились локально и ошибка не связанна с симфой - то всё ок
Dmitry
Всем привет, а как symfony/messenger работает с другими языками, например с микросервисами на Node.js ? или он никак не работает и нужно свои serializers писать и вообще убирать messenger ?
Vlad
так же как и по хтпп