Tôi sử dụng Laravel 5.3.22 và muốn đơn vị kiểm tra ứng dụng của tôi bằng cách sử dụng cơ sở dữ liệu trong bộ nhớ sqlite di chuyển/quay lại cho mọi thử nghiệm như đã nói here. Đây là phần kết nối cấu hình database.php tôi:Laravel bỏ qua kết nối cơ sở dữ liệu thử nghiệm
'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' => '',
],
Đây là cấu hình 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>
Các cấu hình phpunit ngụ ý rằng laravel shoud sử dụng "kiểm tra" kết nối sql để thử nghiệm, nhưng nó không quan tâm và tiếp tục với kết nối mysql chính. Đây không phải là một tùy chọn, tôi có một lược đồ lớn và phức tạp và nó không thể được sử dụng để kiểm tra đơn vị với mysql. Làm cách nào để tiếp tục? Tôi không thể giả lập trình tạo truy vấn vì tôi cần khẳng định kết quả của nó.
cảm ơn bạn rất nhiều..chỉ giúp tôi tiết kiệm thời gian –