rishatss
@rishatss
Simple Developer ^)

Как настроить phpunit базу с миграциями в Laravel?

Всем привет :)
Пытаюсь запустить тесты на базе SQLite, но говорит что нету данных в базе. Как запустить миграции в тестовую базу не подскажите?

В конфигах PHPunit сейчас так.
<php>
        <env name="APP_ENV" value="testing"/>
        <env name="DB_CONNECTION" value="sqlite"/>
        <env name="DB_DATABASE" value=":memory:"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
    </php>
  • Вопрос задан
  • 549 просмотров
Решения вопроса 1
rishatss
@rishatss Автор вопроса
Simple Developer ^)
Добавил в config/database.php
'testing' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'test_laravel-chat'),
            'username' => env('DB_USERNAME', 'homestead'),
            'password' => env('DB_PASSWORD', 'secret'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ]

В phpunit.xml
<php>
        <env name="APP_ENV" value="testing"/>
        <env name="DB_CONNECTION" value="testing"/>
        <env name="DB_DATABASE" value="test_laravel-chat"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
    </php>

Создал файл .env.testing и туда засунул все что у меня было в .env, далее поменял базу на другую и создал ее и выполнил миграции в нее.
php artisan config:cache --env=testing

php artisan migrate --database testing
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы