Я работаю с Drupal и хочу провести различие между двумя базами данных, чтобы увидеть, какие таблицы были обновлены в данном сеансе.Как мне это сделать? - PullRequest
0 голосов
/ 04 августа 2011

Я работаю с Drupal над проектом, пытаюсь найти способ ускорить тесты (мы используем Cucumber и Selenium), и я пытаюсь увидеть, какие таблицы были изменены в данной серии шагов , поэтому я могу просто вернуть дамп и выполнить сброс этих таблиц между каждым тестовым примером.

Прямо сейчас, Simpletest, среда тестирования Drupal работает, устанавливая и настраивая таблицы для каждого модуля, необходимого для теста, что делает медленные тесты, и я эмулирую аналогичный подход, загружая дамп базы данных для каждого теста .

Учитывая, что сайт, если вы проводите интеграционное тестирование, имеет состояние «заведомо хорошо», с которого я начинаю, я думаю, что было бы быстрее иметь возможность просто возвращаться к этому моменту каждый раз, вместо ожидания двадцати. секунд или около того, чтобы удалить базу данных, а затем пересылать дамп-файл обратно между каждым запуском теста.

Однако, когда я пытаюсь провести различие между двумя дамп-файлами (т. Е. before.I.create.a.node.sql и after.I.create.a.node.sql), на выходе получается нечитаемая загрузка сериализованного php, которую я не могу понять.

То есть есть какие-то инструменты, которые я могу использовать, чтобы определить, какие таблицы мне нужно отбрасывать и перестраивать между тестовыми случаями, поэтому я не беру 20-секундное попадание в каждом тесте, если не считать схемы и кода каждого модуля. Я работаю с?

Я следую изложенным здесь идеям, заставляя огурец работать с PHP , и да, я видел [этот вопрос здесь на похожую тему

Спасибо!

1 Ответ

0 голосов
/ 28 июня 2012

Drupal хранит много сериализованного PHP в базе данных.Но основная его часть хранится в кеш-таблицах;например, cache, cache_field, cache_menu и т. д., и вы можете безопасно обрезать их перед выгрузкой базы данных.

Если у вас есть таблицы simpletest, вы можете их отбросить.Все они являются временными и используются только для запуска набора тестов Simpletest.

Это должно уменьшить размер дампа намного .Если этого недостаточно, я могу порекомендовать прочитать таблицы в книге Pro Drupal Development , или вы можете просмотреть файлы .install, чтобы прочитать определения схемы модуля.Хотя большинство из них, вероятно, будут реальными данными, которые вы захотите вернуть между тестами.

Из-за реляционной природы базы данных убедитесь, что вы точно знаете, что делаете, или сбросьте / верните все оставшиеся таблицывместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...