Codeception не может найти Kernel.php в Symfony 4

Я пытаюсь использовать Codeception для проведения функциональных приемочных тестов в проекте с использованием Symfony 4. Среда проекта построена с контейнерами докеров (простой контейнер pgsql и контейнер php, которые запускают php bin/comnsole serve и выставляют 8000 на другой локальный порт). Я столкнулся с проблемой, что запуск тестов, указанных с расширением symfony, вызывает ошибку:

bin/codecept run -v
Codeception PHP Testing Framework v2.4.0
Powered by PHPUnit 7.0.2 by Sebastian Bergmann and contributors.

In Symfony.php line 300:

  [Codeception\Exception\ModuleRequireException]
  [Symfony] module requirements not met --

  Kernel class was not found in /srv/dsp-blacklister/src/Kernel.php. Specify directory where file with Kernel class for your application is located with `app_path` parameter.

Но ядро ​​находится там:

/srv/dsp-blacklister/src # ls -la
total 4
drwxr-xr-x    7 root     root           224 Feb 28 09:35 .
drwxr-xr-x   26 root     root           832 Feb 28 16:18 ..
drwxr-xr-x    3 root     root            96 Feb 28 08:16 Controller
drwxr-xr-x    5 root     root           160 Feb 28 10:39 Entity
-rw-r--r--    1 root     root          2010 Feb 28 09:35 Kernel.php
drwxr-xr-x    4 root     root           128 Feb 28 11:39 Migrations
drwxr-xr-x    3 root     root            96 Feb 28 09:09 Repository

person Nikita Pimoshenko    schedule 01.03.2018    source источник


Ответы (2)


Ваше ядро ​​находится в другом пространстве имен. Для этого пока нет исправления, кроме временного взлома ниже (добавьте в конец вашего класса ядра)

class_alias(Kernel::class, 'App\Kernel', true);
person delboy1978uk    schedule 25.04.2018
comment
Проблема в файле Symfony.php при кодировании, он пытается загрузить appKernek или app/Kernel. Я исправил с решением, показанным выше. - person Simon Berton; 12.06.2018

Теперь вы можете использовать параметр kernel_class для указания пространства имен ядра:

modules:
    enabled:
        - \Helper\Functional
        - Symfony:
            kernel_class: AppTest\Kernel
person Aleksey Shmelev    schedule 27.06.2018
comment
LOL, я сделал это исправление PR для Codeception 6 месяцев назад, а затем они получили другой PR за 14 дней назад. Мне нравится эта open source команда)) - person Nikita Pimoshenko; 04.07.2018