Я использую 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 Архив .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 
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'); }); } } 
Но когда я запускаю тесты, он не меняет базу данных и удаляет все данные из базы данных, используемой в приложении.
Как я могу решить эту проблему?
Вы должны добавить значение среды (которое соответствует среде, в которую вы будете инициализировать Dusk), до конца вашего имени файла .env.dusk (например, – .env.dusk.local). Для справки проверьте документацию по обработке окружающей среды в сумерках .
  Обновление . Если у вас все еще есть проблемы в ваших комментариях, поставьте следующее в верхней части своей функции testLogin и сообщите, что говорит dd(env('APP_ENV')); 
@alaric
  Я изменил файл .env.dusk.local на .env.dusk.local 
  Я запустил php artisan serve и создал нового пользователя в базе данных laravel_dusk. 
  Я снова запустил php artisan serve а затем в php artisan dusk для запуска тестов и создания нового пользователя с тем же адресом электронной почты, но в базе данных laravel_dusk_test и он продолжает регистрироваться в laravel_dusk. 
Вместо использования базы данных mysql я бы рекомендовал использовать временную базу данных sqlite, поскольку она создается и уничтожается во время тестов.
вам нужно будет иметь конфигурацию sqilte в вашем файле database.php, указывающую на фактический файл .sqlite, который у вас есть в вашей установке
  поэтому скопируйте конфигурацию sqlite в database.php а затем вставьте ее, назовите ее sqlite_dusk возможно, тогда для местоположения db поместите ее как storage_path('dusk.sqlite') или что-то в этом роде.  Затем создайте пустой файл dusk.sqlite в корневой папке вашего storage . 
  Затем в вашем наборе .env.dusk : 
 DB_CONNECTION=sqlite_dusk 
Надеюсь, это поможет!