@HellWalk

Возможно ли подружить Symfony + gRPC + Codeception?

Codeception, чтобы собрать Kernel симфони нужен соответствующий модуль:

modules:
    enabled:
        -   Symfony:
                app_path: 'src'
                environment: 'test'


И в тоже время, стоит поставить
composer require codeception/module-symfony --dev

Не меняя вообще больше ничего, тесты (даже один банальный тест assertTrue(true)) падают с ошибкой:

Expected to find class "App\Grpc\..." in file "/var/www/..." while importing services from resource "../src/*", but it was not found! Check the namespace prefix used with the resource in /var/www/.../services.yaml (which is being imported from "/var/www/.../src/Kernel.php")


При этом, если удалить классы, связанные с gRPC из src/Grpc, то все сразу работает.

P.S. Да, я знаю, что PHP не может выступать в качестве клиента для gRPC, интересует вопрос - как-то можно использовать Symfony + gRPC + Codeception в одной связке, или от Codeception придется отказываться, и как-то обходиться чистым PHPUnit и моками на все вызовы gRPC-классов.
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
@HellWalk Автор вопроса
В общем, все оказалось просто (когда знаешь что делать)

Необходимо в config/services.yaml в существующую строку:
exclude: '../src/{DependencyInjection,Entity,Tests,Kernel.php}'

добавить папку, в которой находятся gRPC-классы, в моем случае это папка src/Grpc и строчка в конфиге выглядит так:
exclude: '../src/{DependencyInjection,Entity,Tests,Grpc,Kernel.php}'


Спасибо за наводку по решению BoShurik
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽