我正在尝试通过测试“make:user”创建的 User 类来学习如何制作 phpunit,但是在扩展“KernelTestCase”并运行测试时我遇到了这个问题:
LogicException:您必须将 KERNEL_CLASS 环境变量设置为 phpunit.xml / phpunit.xml.dist 中内核的完全限定类名,或者覆盖“App\tests\Entity
UsersTest::createKernel()”或“App\tests \Entity\UsersTest::getKernelClass()”方法。
两天以来我一直在尝试与我的朋友 Google 修复它,但我没有找到任何解决方案。你能帮助我吗 ?感谢你们 !
vin*_*PPE 29
我刚刚遇到了同样的问题。
解决方案是更新./phpunit.xml.dist
文件以设置 KERNEL_CLASS 环境变量:
[...]
<php>
<ini name="error_reporting" value="-1" />
<server name="APP_ENV" value="test" force="true" />
<server name="SHELL_VERBOSITY" value="-1" />
<server name="SYMFONY_PHPUNIT_REMOVE" value="" />
<server name="SYMFONY_PHPUNIT_VERSION" value="7.5" />
<server name="KERNEL_CLASS" value="App\Kernel" /> <--- SET KERNEL_CLASS AT THIS LINE
</php>
[...]
Run Code Online (Sandbox Code Playgroud)
就我而言,该文件与phpunit-bridge Recipetests/bootstrap.php
之一不同步。该配方未执行,因为我将 Symfony 3.4(无 Flex)更新为 Symfony 4.4。
安装配方后,composer recipes:install symfony/phpunit-bridge --force -v
以下文件被覆盖:
.env.test
phpunit.xml.dist
tests/bootstrap.php
现在已.env.test
加载,并且KERNEL_CLASS
在那里定义的 env 变量得到了正确的尊重。