📌  相关文章
📜  尚未设置门面根 phpunit - PHP (1)

📅  最后修改于: 2023-12-03 15:39:21.241000             🧑  作者: Mango

尚未设置门面根 phpunit - PHP

简介

当在运行phpunit时出现“Not set root facade Phpunit”错误提示时,意味着您需要设置门面根来访问门面类。门面类是一种设计模式,被广泛用于Laravel框架中,可以方便的访问不同功能模块下的服务提供者。

问题分析

phpunit在运行测试时需要创建Laravel应用程序。在该进程中,门面根是必要的,以便访问应用程序容器中的依赖关系。如果没有正确设置门面根,就会收到错误消息“Not set root facade Phpunit”。

解决方案

要解决此错误消息,“Not set root facade Phpunit”的问题,您需要通过在setUp方法中使用Application未实现的门控根方法来设置门面根。可以在测试文件的setUp方法中指定门面根目录的路径,如下所示:

use Illuminate\Support\Facades\Facade;

protected function setUp(): void
{
    $this->createApplication();
    Facade::clearResolvedInstances();
    Facade::setFacadeApplication($this->app);
} 

这将告诉Laravel应用程序在测试期间使用该目录作为门面根。

结论

phpunit运行Laravel测试时,需要正确设置门面根,以便访问应用程序容器中的依赖关系。如果没有设置好门面根,您将面临错误消息“Not set root facade Phpunit”。 通过在setUp方法中使用Application未实现的门控根方法设置门面根即可解决此问题。