@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-классов.
  • Вопрос задан
  • 203 просмотра
Решения вопроса 1
@HellWalk Автор вопроса
В общем, все оказалось просто (когда знаешь что делать)

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

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


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

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

Похожие вопросы