在Symfony 4中找不到Kernel.php

wrrgggsh  于 2022-12-10  发布在  PHP
关注(0)|答案(3)|浏览(125)

我正在尝试使用Codeception对使用Symfony 4的项目进行一些功能验收测试。项目环境是用docker容器构建的(只是简单的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
ie3xauqp

ie3xauqp1#

你的内核在一个不同的命名空间中。目前还没有一个解决这个问题的方法,除了下面的临时破解(添加到你的内核类的底部)

class_alias(Kernel::class, 'App\Kernel', true);
dfddblmv

dfddblmv2#

现在可以使用kernel_class参数指定内核名称空间:

modules:
    enabled:
        - \Helper\Functional
        - Symfony:
            kernel_class: AppTest\Kernel
e5nqia27

e5nqia273#

对于Codreceive v5.0.5,添加到所有套装:

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

对我有用。

相关问题