我在正确的位置定义KERNEL_CLASS吗?

时间:2019-03-14 14:09:18

标签: php symfony phpunit

我正在尝试在Symfony 4应用程序中使用WebTestCase运行基本的功能测试。当我运行测试时,得到以下输出:

  

1)   Tests \ Application \ EndToEnd \ AuthenticationTest :: testAuthenticationMethodNotAllowed   RuntimeException:类“ App \ Kernel”不存在或不能为   自动加载。检查phpunit.xml中的KERNEL_CLASS值是否匹配   您的内核的全限定类名,或覆盖   Tests \ Application \ EndToEnd \ AuthenticationTest :: createKernel()方法。

尝试遵循this answer中的建议,我编辑vendor/phpunit/phpunit/phpunit.xml并添加以下行:

<server name="KERNEL_CLASS" value="AppKernel" />

这就是有趣的地方:我仍然收到App\Kernel的投诉-反斜杠-不可用。

这表明我可能编辑了错误的XML文件,因为我的编辑值不包含反斜杠。 我应该在哪个XML文件中添加定义?

2 个答案:

答案 0 :(得分:1)

我在通过 PHPStorm 运行测试时遇到此错误(手动运行它们时它们正在工作)。我必须将“默认配置文件”设置为 /path/to/phpunit.xml

  1. 在首选项中,依次转到“语言和框架”、“PHP”和“测试框架”
  2. 确保选择了适当的解释器(在我的例子中,它是 Docker 容器的远程解释器)
  3. 将“默认配置文件”的路径设置为您项目的本地phpunit.xmlphpunit.xml.dist

答案 1 :(得分:0)

原来,我需要在项目的根级别中创建一个phpunit.xml文件。一旦出现了相关的XML,它就会自行整理。