Testing 试图让Laravel Dusk与sqlite数据库配合使用
我正在尝试让Laravel Dask与我正在测试的应用程序配合得很好 目前,我可以编写测试sqlite数据库,但当我尝试按照指南测试登录表单时,似乎正在使用开发数据库中的详细信息 这是我的测试:Testing 试图让Laravel Dusk与sqlite数据库配合使用,testing,phpunit,laravel-dusk,Testing,Phpunit,Laravel Dusk,我正在尝试让Laravel Dask与我正在测试的应用程序配合得很好 目前,我可以编写测试sqlite数据库,但当我尝试按照指南测试登录表单时,似乎正在使用开发数据库中的详细信息 这是我的测试: class LoginTest extends DuskTestCase { private $user; use DatabaseMigrations; public function setUp() { parent::setUp(); $this->user = fa
class LoginTest extends DuskTestCase
{
private $user;
use DatabaseMigrations;
public function setUp()
{
parent::setUp();
$this->user = factory(User::class)->create(['password' => bcrypt('secret')]);
}
/**
* A Dusk test example.
*
* @return void
* @throws \Exception
* @throws \Throwable
*/
public function test_user_can_log_in()
{
$this->browse(function (Browser $browser) {
$browser->visit('/login')
->assertSee('Members sign in')
->type('email', $this->user->email)
->type('password', 'secret')
->driver->executeScript('window.scrollTo(0, 500);');
$browser->press('Sign in')
->assertPathIs('/home');
});
}
}
此测试无法通过身份验证,因为我刚刚创建的用户在其读取的开发Mysql数据库中不存在
我可以看到我在sqlite数据库中刚刚创建的用户,并可以查询该用户是否存在
我做错了什么?Laravel Auth是否做了一些事情来覆盖连接
多谢各位
编辑
这是我的.env
文件
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=backend_cms
DB_USERNAME=homestead
DB_PASSWORD=secret
DB_DATABASE_2=members
DB_USERNAME_2=homestead
DB_PASSWORD_2=secret
还有我的.env.dash.local
(我也尝试过重命名为.env.dash
,但没有改变
DB_CONNECTION=sqlite_testing
DUSK=true
我读到只有您需要更改的项目应该在那里,所以假设只需要连接
编辑
以下是database.php
'sqlite' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
],
'sqlite_testing_memory' => [
'driver' => 'sqlite',
'database' => ':memory:',
'prefix' => '',
],
'sqlite_testing' => [
'driver' => 'sqlite',
'database' => database_path('database.sqlite'),
'prefix' => '',
],
你可以发布你的
.env.dash.
文件吗?谢谢@JonasStaudenmeir我已经添加了env
entries,你可以从你的config/database.php
文件发布connections.sqlite\u testing
测试吗?你好@JonasStaudenmeir再次感谢-这是database.php
entriest这个:Putdd(User::all());
在交付登录页面的控制器方法中。然后使用dd($browser->visit('/login')->dump()检查测试中的输出;
。