2016-11-28 54 views
5

Laravel 5.3.22'yi kullanıyorum ve bir test içi bir sqlite veritabanı kullanarak her bir test için here dediği gibi her bir test için geri dönme/test etme özelliğini kullanmak istiyorum.Laravel, veritabanı bağlantısı testini göz ardı eder

'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' => '', 
     ], 

Bu PHPUnit env yapılandırma geçerli:: Bu bağlantıların bölüm benim DatabaseFunctions.php yapılandırma olduğunu

<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 yapılandırma laravel testleri için "test" sqlite bağlantısı kullanmak sınırlandırmak anlamına gelir ama birincil mysql bağlantısı ile ilgilenmez ve devam etmez. Bu bir seçenek değil, büyük ve karmaşık bir şema var ve mysql ile birim testi için kullanılamaz. Nasıl devam ederim? Sorgu oluşturucu ile dalga geçemiyorum çünkü sonuçların üzerinde durmam gerekiyor.

cevap

2

Sorunu çözdüm, yerel ortamımda yapılandırma önbellekleme özelliğini kullanıyorum ve Laravel'in phpunit yapılandırmasını kullanmasını engelliyor. config: açık esnaf komutunun yardımı. Ayrıca yerel önbellek için dosya önbellek sürücüsünü diziye değiştirdim.

+0

Çok teşekkür ederim. –

İlgili konular