Странная ошибка, Mysql асинхронный? - PullRequest
0 голосов
/ 08 марта 2010

У меня странная ошибка. Я запускаю PHP Unit Test Suite. Сначала он выполняет большой запрос для инициализации базы данных.

Если я поставлю точку останова сразу после выполнения sql, проблем не будет, и мои тесты пройдут.

Если я не ставлю точку останова, они не проходят и говорят, что таблицы не существуют!

Работает так, как если бы SQL-запрос был асинхронным!

У вас есть представление об ошибке? Или как это отладить?

1 Ответ

0 голосов
/ 08 марта 2010

Чтобы отладить это, вам нужно посмотреть журнал запросов - особенно последовательность событий вокруг точки, в которой заканчивается загрузка данных и начинается первый модульный тест. Где-то подкралась база данных для отбрасывания?

Журнал запросов включается с помощью параметра в файле конфигурации:

MySQL Manual - 5.1.2 Опции команды сервера

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

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

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