我正在尝试使用Codeception
使用Symfony 4
对项目进行一些功能验收测试。项目环境是使用docker容器构建的(只是简单的pgsql容器和运行php bin/comnsole serve
的php容器,并将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.
但Kernel位于那里:
/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
答案 0 :(得分:2)
您的内核位于不同的命名空间中。除了下面的临时黑客(添加到内核类的底部)之外,还没有解决此问题的方法
class_alias(Kernel::class, 'App\Kernel', true);
答案 1 :(得分:0)
现在,您可以使用kernel_class
参数指定内核名称空间:
modules:
enabled:
- \Helper\Functional
- Symfony:
kernel_class: AppTest\Kernel