Как очистить PHP APC от теста Selenium? - PullRequest
0 голосов
/ 14 октября 2010

В моем приложении PHP Zend Framework я использую APC для кэширования определенных повторных запросов к базе данных. Внутри приложения я могу очистить кеш с помощью этой команды: apc_clear_cache('user')

Я также запускаю тесты PHPUnit Selenium для этого приложения. До добавления APC у меня проблем не было. У меня есть тест, который добавляет тестового пользователя в базу данных (в настройке), регистрирует его в приложении (в тесте) и удаляет запись пользователя из базы данных (в раскрытии). Эта же процедура выполняется во всех тестах, так как вы должны войти в систему, чтобы использовать определенные функции приложения. Теперь, когда APC установлен, APC кэширует первого созданного пользователя, но не очищает кэш при повторном создании пользователя, что означает, что вход в систему работает только в первом тесте.

Мне нужно найти способ очистить кеш из моего теста Selenium. Единственный способ, которым я мог придумать, как это сделать, - это создать действие контроллера, которое было бы открыто для общественности, и таким образом из моего теста я мог открыть /cache/clear, и он очистил бы кэш. Я попробовал этот подход, и он работал, но этот подход не кажется очень практичным, так как любой может получить доступ к этому URL.

Каким должно быть мое решение этой ситуации?

Ответы [ 2 ]

2 голосов
/ 14 октября 2010

Ну, очистите кеш в TearDown() и SetUp() тогда?

1 голос
/ 16 апреля 2012

Вызов скрипта - единственный способ, так как вы должны запускать apc_clear в контексте Apache, а не в контексте оболочки. Надо просто обезопасить его, в идеале немного запутать его существование. Пока есть защита паролем или блокировка клиента (ограниченная определенными IP-адресами), это не проблема.

...