Ich benutze Dusk, um einen einfachen Login-Test zu machen.Wie erstellt man .env-Datei für den Test mit Laravel Dusk
Ich habe eine .env.dusk-Datei erstellt, sodass der Test eine alternative Datenbank verwendet und die auf der Plattform registrierten Daten nicht gelöscht werden.
Archiv .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_dusk
DB_USERNAME=root
DB_PASSWORD=123456
Archiv .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' => '[email protected]']);
$this->browse(function ($browser) use ($user) {
$browser->visit('/login')
->type('email', $user->email)
->type('password', 'secret')
->press('Login')
->assertPathIs('/home');
});
}
}
Aber wenn ich die Tests laufen sie nicht die Datenbank ändern, und es Löscht alle Daten aus der Datenbank, die in der Anwendung verwendet werden.
Wie kann ich dieses Problem lösen?
Bei Ausführung von php artisan dusk show "local" –
Ändern Sie den Dateinamen der Datei env.dusk.testing in env.dusk.local – alaric