2015-02-26 2 views
1

Я пишу тестовую структуру для расширения Magento, которое я создаю. Расширение имеет множество значений конфигурации, хранящихся в etc/config.xml, под <global><default>. В тестовой структуре создается модель расширения и выполняется один из ее методов. Однако сначала он копирует файл config.xml в /etc/config.xml. Идея состоит в том, что модель создается каждый раз с помощью config.xml, чтобы протестировать различные конфигурации. Тестирование основывается на полдюжины различных файлов config.xml.Разработка расширения Magento - тестирование нескольких файлов config.xml - значения кэшируются?

Проблема: даже если я перезагружаю Magento, модель расширения всегда создает экземпляры с данными config.xml из любого файла, присутствовавшего при запуске подпрограммы. Я вижу, что файл etc/config.xml действительно изменяется на каждой итерации, и изменения отображаются в глобальной конфигурации, когда я делаю Mage::getConfig()->loadModulesConfiguration->getNode('default/module_name'). Это похоже на то, что расширение кэширует свои значения конфигурации для каждого запуска. Я выполняю тестовый файл через PHP CLI.

У кого-нибудь есть идеи по этому поводу? Я в тупике. Спасибо за прочтение.

ответ

0

Итак, я выяснил обходное решение, но я все еще не уверен, что вызывает поведение. В модели, я тестирование

$this->config = Mage::getStoreConfig('jd_premier/default'); 

возвращает те же (кэшируются?) Конфигурационные данные после того, как я переинициализация Magento и вызвать Mage :: getConfig-> переинициализацию(). Однако

$this->config = Mage::getConfig()->loadModulesConfiguration('config.xml') 
       ->getNode('default/jd_premier/default'); 

возвращает правильные данные из новейшей версии config.xml.

Не знаю, что здесь происходит, поэтому, если вы можете просветить меня, я рад принять его в качестве ответа.

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