Symfony 4 phpunit:KERNEL_CLASS 环境变量错误

Ray*_*han 13 phpunit symfony4

我正在尝试通过测试“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)


nai*_*rch 5

就我而言,该文件与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 变量得到了正确的尊重。