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('/');
});
}
在这个项目中,我们使用通过 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('/');
});
}