Laravel php工匠服务不尊重环境标志

Laravel php工匠服务不尊重环境标志,php,laravel,testing,laravel-dusk,Php,Laravel,Testing,Laravel Dusk,我正在做一个拉威尔的项目,并试图整合拉威尔的童子军。为了使用dusk进行测试,我创建了一个.env.dusk.local环境文件,用于测试。但是当我尝试运行phpartisanserve--env=dusk.local时,它只运行默认的.env文件。另外,所有其他.env文件都不起作用 我正在使用Laravel8.15.0。 我还尝试清除配置缓存,但没有任何更改 我现在没有主意了,希望有人能帮我。如果你看到laravel Dash文档,你可以看到你没有必要这样做,你的单独的Dash env文件会

我正在做一个拉威尔的项目,并试图整合拉威尔的童子军。为了使用dusk进行测试,我创建了一个.env.dusk.local环境文件,用于测试。但是当我尝试运行
phpartisanserve--env=dusk.local
时,它只运行默认的.env文件。另外,所有其他.env文件都不起作用

我正在使用Laravel8.15.0。 我还尝试清除配置缓存,但没有任何更改


我现在没有主意了,希望有人能帮我。

如果你看到laravel Dash文档,你可以看到你没有必要这样做,你的单独的Dash env文件会替换原始文件&一旦测试完成,它会自动恢复

运行测试时,Dusk将备份.env文件,并将Dusk环境重命名为.env。测试完成后,将恢复.env文件


如果它仍然不起作用 借助于
vlucas/phpdotenv
的方法load(),您可以手动设置env


谢谢。我做了一点测试,我发现我所有的其他测试都失败了,因为望远镜坏了,即使当我禁用望远镜时,我也犯了这个错误。所以我从引导配置文件中删除了望远镜并重新安装了它。现在它以正确的方式工作。
<?php

namespace Tests\Browser;

use App\Models\User;
use Laravel\Dusk\Chrome;
use Tests\DuskTestCase;

class ExampleTest extends DuskTestCase
{
    private function setEnv(){
       $env_name = "dusk.local";
       if (isset($env_name)) {
            // Immutability refers to if Dotenv is allowed to overwrite existing environment variables. If you want Dotenv to overwrite existing environment variables, use createMutable instead of createImmutable(from vlucas/phpdotenv repo)
            $dotenv = \Dotenv\Dotenv::createImmutable(base_path(), '.env.'.$env_name);
    
            try {
                $dotenv->load();
            } catch (\Dotenv\Exception\InvalidPathException $e) {
                $e->getTraceAsString();
            }
        }
    }
    public function testBasicExample()
    {
        $this->setEnv();
    }
}