How can I change the directory the configuration is in?

It’s a simple problem. Perhaps you don’t want your abstract configurable element configurations in the root directory of your project. Prior to version 0.6.19 this may have been possible but the mechanism for doing it was quite cumbersome. With 0.6.19, the ConfigurationProviderInterface requires the configuration provider (StandardConfigurationProvider, in most cases) to configure the DiC. It’s kind of silly to have a class for configuration that doesn’t, itself, provide the mechanism for configuring DI.

It’s still a little wonky, but you can now easily change the configuration directory for your tests. Your project does not require, but should have, an abstract test case that extends either Magium\AbstractTestCase or Magium\Magento\AbstractMagentoTestCase. To change the configuration directory for the abstract configurable elements you need to overload the constructor like so:


abstract class AbstractTestCase extends \Magium\AbstractTestCase { public function __construct($name = null, array $data = [], $dataName = null, Initializer $initializer = null) { $initializer = new Initializer( null, null, new StandardConfigurationProvider( new ConfigurationReader(), new ClassConfigurationReader(realpath(__DIR__ . '/../configuration')), new EnvironmentConfigurationReader() ) ); parent::__construct($name, $data, $dataName, $initializer); } }