如何使用Laravel Dusk创建.env文件进行测试

Luc*_*pes 7 php environment laravel laravel-5 laravel-dusk

我正在使用Dusk进行简单的登录测试.

我创建了一个.env.dusk文件,以便测试使用备用数据库,并且不会删除在平台上注册的数据.

存档.env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_dusk
DB_USERNAME=root
DB_PASSWORD=123456
Run Code Online (Sandbox Code Playgroud)

存档.env.dusk

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_dusk_test
DB_USERNAME=root
DB_PASSWORD=123456
Run Code Online (Sandbox Code Playgroud)

LoginTest.php

namespace Tests\Browser;

use Tests\DuskTestCase;
use Illuminate\Foundation\Testing\DatabaseMigrations;

class LoginTest extends DuskTestCase
{
    use DatabaseMigrations;
    /**
     * A Dusk test example.
     *
     * @return void
     */
    public function testLogin()
    {
        $user = factory(\App\User::class)->create(['email' => 'example@example.com']);

        $this->browse(function ($browser) use ($user) {
            $browser->visit('/login')
                    ->type('email', $user->email)
                    ->type('password', 'secret')
                    ->press('Login')
                    ->assertPathIs('/home');
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行测试时,它不会更改数据库,它会删除应用程序中使用的数据库中的所有数据.

我怎么解决这个问题?

ala*_*ric 6

您必须在.env.dusk文件名(例如-.env.dusk.local)的末尾附加一个环境值(与您将在其中初始化Dusk的环境相匹配)。作为参考,请查阅“ 黄昏环境处理 ”文档。

更新:如果您的评论仍然有问题,请将以下内容放在testLogin函数的顶部,并报告其内容dd(env('APP_ENV'));