2017-03-27 11 views
5

私はDuskを使って簡単なログインテストを行っています。Laravel Duskでテスト用.envファイルを作成する方法

テストで代替データベースが使用され、プラットフォームに登録されているデータは削除されないように.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 

アーカイブは

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'); 
     }); 
    } 
} 

LoginTest.php

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=laravel_dusk_test 
DB_USERNAME=root 
DB_PASSWORD=123456 

を.env.duskしかし、私はテストを実行するとき、それをデータベースを変更していませんアプリケーションで使用されるデータベースからすべてのデータを削除します。

どうすればこの問題を解決できますか?

答えて

3

環境変数(Duskを初期化する環境に一致します)を.env.duskファイル名の最後に追加する必要があります(例:--env.dusk.local)。参考までにDusk Environment Handlingのドキュメントを参照してください。

更新:あなたはまだコメントあたりの問題を抱えている場合は、あなたのTESTLOGIN関数の先頭に次を入れて、それは私が.env.dusk.testingを変更dd(env('APP_ENV'));

+0

php artisan dusk show "local"を表示する場合 –

+0

env.dusk.testingファイル名をenv.dusk.localに変更します – alaric

1

@alaric

言うに報告をファイルに.env.dusk.local

私はphp artisan serveを実行し、laravel_duskデータベースに新しいユーザーを作成しました。

php artisan serveを再度実行してからphp artisan duskを実行して、テストを実行して同じ電子メールで新しいユーザーを作成し、データベースlaravel_dusk_testに登録して、laravel_duskに登録を続けます。

0

mysqlデータベースを使用する代わりに、テスト中に作成され破棄されるため、一時的なsqliteデータベースの使用をお勧めします。

あなたはので、あなたのインストールで

を持っている実際の.sqliteファイルを指してあなたのdatabase.phpででsqilte設定を持っている必要があります、それはsqlite_duskdatabase.phpsqlite設定をコピーして貼り付け、名前を付けます多分、dbの場所にはstorage_path('dusk.sqlite')かそのようなものを入れてください。その後、storageフォルダのルートに空白のdusk.sqliteファイルを作成します。

DB_CONNECTION=sqlite_dusk 

希望に役立ちます:あなたの.env.duskセットで次に

関連する問題