Laravel 5 тестирование в памяти


Я пишу тесты через behat для моего большого проекта Laravel 5.

У меня есть тестовая копия моей базы данных MySQL в MySQL и сеялка для этой базы данных, которая разделяет некоторые сеялки других сред. Все это работает, как и ожидалось.

Тем не менее, я попытался переключиться на использование базы данных sqlite в памяти, потому что это значительно ускорит мои автоматические тесты и потому что я запускаю " artsian migrate:refresh - - - seeder=TestDatabaseSeeder в начале каждого behat сценарий.

Проблема, с которой я сталкиваюсь, заключается в том, что некоторые из моих исходных данных заставляют sqlite выбрасывать очень недискриптную синтаксическую ошибку, но MySQL полностью справляется с исходными данными.

В идеале, я думаю, я хотел бы, чтобы он использовал MySQL в памяти для целей производительности и обеспечения согласованности ядра СУБД. Есть ли простой способ с Laravel или без него использовать MySQL в памяти при выполнении тестов? Решение, которое не включает в себя дублирование и редактирование файлов миграции таким образом, чтобы sqlite доволен?

1 4

1 ответ:

Оказалось, что sqlite не понравилось, как они сбежали.

"\' " необходимо заменить на """. И sqlite не поддерживает перечисления, поэтому я изменил свои миграции и использую строки вместо перечислений.