php - 我是否在正确的位置定义了 KERNEL_CLASS?

标签 php symfony phpunit

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

1) Tests\Application\EndToEnd\AuthenticationTest::testAuthenticationMethodNotAllowed RuntimeException: Class "App\Kernel" doesn't exist or cannot be autoloaded. Check that the KERNEL_CLASS value in phpunit.xml matches the fully-qualified class name of your Kernel or override the Tests\Application\EndToEnd\AuthenticationTest::createKernel() method.

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

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

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

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

最佳答案

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

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

关于php - 我是否在正确的位置定义了 KERNEL_CLASS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55164644/

相关文章:

php - Symfony 交互式命令测试以 RuntimeException 结束

php - Symfony2 : Repository's findAll() returns multiple instances of same entity instead of all entities

php - 为什么 Selenium RC 看不到虚拟机上的站点

phpunit安装错误: Cannot use PHPUnit\Framework\MockObject\Stub as Stub

php - INSERT mysql_num_rows 作为变量

php - Laravel 8 中如何自定义默认登录错误信息

php - 使用 PHP 和 mysql 进行搜索

php - 是否可以在 Symfony2 中调试 php 代码?

php - Symfony 2 中 CSS 文件中的资源路径

php - 告诉 phpunit 调用 public 而不是 private