Как изменить соединение с базой данных на лету для тестов PhpUnit - PullRequest
1 голос
/ 15 сентября 2010

Я работаю над проектом Magento 1.4.1 и хочу использовать PhpUnit для тестирования моих моделей.

Я могу запустить свой тест PhpUnit, используя соединение по умолчанию, но я хочу использовать соединение с другой базой данных, чем то, которое я использую для тестирования интерфейса.

Что я хотел бы знать (если это возможно):

  1. Есть ли способ выбрать другой соединение для моих моделей, прежде чем я запустить все мои тесты;
  2. Могу ли я просто добавить соединение в моем local.xml вроде это:

        <phpunit_setup>
            <connection>
                <host><![CDATA[localhost]]></host>
                <username><![CDATA[username]]></username>
                <password><![CDATA[password]]></password>
                <dbname><![CDATA[dbname]]></dbname>
                <active>1</active>
            </connection>
        </phpunit_setup>
    

    если да, как мне получить к нему доступ?

спасибо.

Ответы [ 2 ]

2 голосов
/ 15 сентября 2010

Возможно, есть другое решение, но я обнаружил, что мы можем изменить «etc_dir» при запуске приложения.

  1. Я скопировал «app / etc / local.xml» и «app / etc / config.xml "во вновь созданную папку" tests / etc / ";
  2. Я изменил эту конфигурацию базы данных на то, что мне нужно;
  3. Я сделал символическую ссылку в" тестах/ etc / "чтобы указать на" app / etc / modules "(копия не рекомендуется);
  4. Наконец я передал параметры по умолчанию и" etc_dir "в метод" Mage :: app () "в файле "tests / helper.php", который выполняется для настройки моих тестов (включая путь, белый список для покрытия кода).

Выглядело это так.

До "tests / helper.php"

...
// Start Magento application
Mage::app();
...

После "tests / helper.php"

...
// Start Magento application
Mage::app('default', 'store', '/path/to/test/etc');
...

Моя папка приложения

alt text

Моя тестовая папка

alt text

Надеюсь, это кому-нибудь поможет.

1 голос
/ 21 апреля 2011

Вы можете просто создать свой собственный local.xml, например:

<?xml version="1.0"?>
<config>
    <global>
        <resources>
            <default_setup>
                <connection>
                    <host><![CDATA[localhost]]></host>
                    <username><![CDATA[root]]></username>
                    <password></password>
                    <dbname><![CDATA[magento_test]]></dbname>
                    <active>1</active>
                </connection>
            </default_setup>
        </resources>
    </global>
</config>

и применить его в вашем методе testCase setUp с помощью:

$test_config = new Mage_Core_Model_Config('test/local.xml');
Mage::getConfig()->extend($test_config);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...