2016-11-28 19 views
5

Używam Laravel 5.3.22 i chcę przetestować moją aplikację za pomocą bazy danych sqlite w pamięci migrując/wycofując dla każdego testu, jak to powiedział here. To jest sekcja Połączenia mój database.php config:Laravel ignoruje testowe połączenie z bazą danych

'mysql' => [ 
      'driver' => 'mysql', 
      'host'  => env('DB_HOST', 'localhost'), 
      'database' => env('DB_DATABASE', 'forge'), 
      'username' => env('DB_USERNAME', 'forge'), 
      'password' => env('DB_PASSWORD', ''), 
      ... 
     ], 

     'testing' => [ 
      'driver' => 'sqlite', 
      'database' => ':memory:', 
      'prefix' => '', 
     ], 

To config phpunit env:

<php> 
    <env name="APP_ENV" value="testing"/> 
    <env name="CACHE_DRIVER" value="array"/> 
    <env name="SESSION_DRIVER" value="array"/> 
    <env name="QUEUE_DRIVER" value="sync"/> 
    <env name="DB_CONNECTION" value="testing"/> 
</php> 

phpunit config oznacza, że ​​laravel Shoud użyć "testing" połączenie sqlite do testowania, ale nie obchodzi go i kontynuuje z głównym połączeniem mysql. To nie jest opcja, mam duży i złożony schemat i nie można go używać do testowania jednostek za pomocą mysql. Jak mogę kontynuować? Nie mogę kpić z kreatora zapytań, ponieważ muszę potwierdzić wyniki.

Odpowiedz

2

Znalazłem problem, korzystałem z buforowania konfiguracji w moim lokalnym środowisku i zapobiegałem używaniu przez Laravel konfiguracji phpunit. pomocne było polecenie config: clear artisan. Zmieniłem także sterownik bufora plików na tablicę dla mojego lokalnego środowiska.

+0

dziękuję bardzo .. właśnie zaoszczędziłem czas –

Powiązane problemy