Symfony 4 phpunit: KERNEL_CLASS环境变量错误



我想通过测试"make: User "制作的User类来学习如何制作phpunit但我面临着这个问题时,扩展"KernelTestCase"然后运行测试:

LogicException:您必须将KERNEL_CLASS环境变量设置为phpunit.xml/phpunit.xml.dist中内核的完全限定类名称或覆盖"ApptestsEntity
UsersTest::createKernel()"或"App 实体 UsersTest测试:getKernelClass()";方法。

这是我的测试,我想测试一个实体:

我试图解决它,因为2天与我的朋友谷歌,但我没有找到任何解决方案。你能帮我吗?谢谢大家!

我也遇到了同样的问题。

解决方案是更新您的./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="AppKernel" /> <--- SET KERNEL_CLASS AT THIS LINE
</php>
[...]

在我的例子中,tests/bootstrap.php文件与phpunit-bridge配方之一不同步。这个配方没有执行,因为我更新了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_CLASSenv变量,在那里定义的,被正确地尊重。

最新更新