Magento扩展开发-测试多个config.xml文件-缓存值


Magento extension development - testing multiple config.xml files - values being cached?

我正在为正在构建的Magento扩展编写一个测试框架。该扩展在<global><default>下的etc/config.xml中存储了许多配置值。测试框架实例化一个扩展模型并运行其中一个方法。但是,它首先将config.xml文件复制到/etc/config.xml。其想法是,每次都用不同的config.xml实例化模型,以测试各种配置。测试框架通过六个不同的config.xml文件进行循环。

问题是,即使我重新引导Magento,扩展模型也总是实例化例程启动时存在的任何文件中的config.xml数据。我可以看到,etc/config.xml文件确实在每次迭代中都会发生更改,当我执行Mage::getConfig()->loadModulesConfiguration->getNode('default/module_name')时,这些更改会显示在全局配置中。这就像扩展在每次运行的基础上缓存其配置值一样。我正在通过PHP CLI执行测试文件。

有人对此有什么想法吗?我被难住了。感谢阅读。

所以我找到了一个解决方法,但我仍然不确定是什么导致了这种行为。在我测试的模型中

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

在重新初始化Magento并调用Mage::getConfig->reinit()后,返回相同的(缓存的?)配置数据。然而,

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

从最新版本的config.xml返回正确的数据。

不知道这里发生了什么,所以如果你能启发我,我很高兴接受它作为答案。