Laravel Dusk Algolia 搜索测试错误:无法连接,请检查您的 Algolia 应用程序 ID

Laravel Dusk test error on Algolia Search: Impossible to connect, please check your Algolia Application Id

在这个项目中,我们使用通过 Composer 安装的 Algolia Search。当我 运行 在登录表单上进行 dusk 测试时,它因错误而失败。表单上的登录本身表现良好,似乎当此测试实际登录并最终出现在主屏幕上时,这就是它失败的地方。

注意:.env 文件中定义了 Algolia APP_ID 和 SECRET,在使用该应用程序时一切正常。

本次测试的实际错误输出:

1) Tests\Browser\LoginTest::testLogin
Algolia\AlgoliaSearch\Exceptions\UnreachableException: Impossible to connect, please check your Algolia Application Id.

Dusk 测试:

public function testLogin()
    {
        $user = factory(User::class)->create([
            'email' => 'dusktester@mail.com',
            'password' => '***'
        ]);

        $this->browse(function (Browser $browser) use ($user) {
            $browser->visit('/login')
                    ->type('email', 'dusktester@mail.com')
                    ->type('password', '***!')
                    ->press('.button')
                    ->assertPathIs('/');
        });
    }

换个方式解决。我们的登录系统稍微复杂一些,并根据您的用户类型链接另一个 table。由于此 Dusk 测试中未在我的用户工厂中定义它,因此它缺少有关该用户的一些重要信息,这导致了 Algolia 搜索错误。

我的解决方法:

不再在 Dusk 测试中创建用户并使用我已经植入的测试用户之一。此用户的凭据取自我的 .env 文件,以确保干净/安全的 dusk 测试文件可以上传到 Git:

public function testLogin()
    {

        $this->browse(function (Browser $browser){
            $browser->visit('/login')
                    ->type('email', env('DUSK_USER'))
                    ->type('password', env('DUSK_PASSWORD'))
                    ->press('.button')
                    ->assertPathIs('/');
        });
    }