2015-08-14 2 views
4

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

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

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

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

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

+2

Ну, хрустальный шар - это миф, поэтому я боюсь, что вы должны предоставить некоторые сообщения об ошибках, с которыми вы сталкиваетесь, связанные с ними коды/схемы и т. Д., Чтобы мы могли посмотреть. –

+0

Вы можете попробовать взглянуть на [MySQL MEMORY Storage Engine] (https://dev.mysql.com/doc/refman/5.5/en/memory-storage-engine.html), который позволяет использовать таблицы в памяти. Это, однако, имеет некоторые недостатки, такие как отсутствие поддержки внешних ключей, которые в большинстве случаев могут быть нарушителями транзакций. – Bogdan

+0

Вы должны отредактировать свой вопрос и добавить эту новую информацию. Не все читают комментарии. Кроме того, если вы решите свою проблему, вы можете добавить ответ самостоятельно, чтобы будущие читатели также извлекали выгоду из вашего опыта. Вы даже можете принять свой собственный ответ через 48 часов. –

ответ

0

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

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

Смежные вопросы