Михаил
у тебя ни то ни другое не происходит
Михаил
почему? Потому что тесты ничего про это не знают
Михаил
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);
}
Павел
Михаил
Рома
да уже проще Symfony\Component\DependencyInjection\Exception\EnvNotFoundException: Environment variable not found: "DATABASE_URL".
Рома
странно почему 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()
Nikolay
Рома
по докуметнации аргумента быть не должно и не находит метод 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
Михаил
Михаил
Покажи как ты вызываешь после того как я попросил
Рома
Михаил
у тебя аллергия на выполнения точных инструкций? где 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
Не видишь же он тупо копипастит!
Рома
а что это за оператор такой вообще?
Михаил
Рома
обычно это используют для распаковки массива на аргументы метода
Михаил
Рома
Михаил
типо
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
так же как и по хтпп