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

时间:2015-02-26 04:32:32

标签: php unit-testing magento

我正在为我正在构建的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执行测试文件。

有没有人对此有任何想法?我很难过。谢谢你的阅读。

1 个答案:

答案 0 :(得分:0)

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

$this->config = Mage::getStoreConfig('jd_premier/default');
在重新启动Magento并调用Mage :: getConfig-&gt; reinit()之后,

返回相同的(缓存?)配置数据。然而,

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

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

不知道这里发生了什么,所以如果你能开导我,我很乐意接受它作为答案。