Динамическое выполнение дампа БД в помощнике принятия кода

Я хочу выполнить другой файл дампа для разных тестов кодирования. Прямо сейчас файл дампа базы данных выполняется из команды shell_exec в методе _before метода AcceptanceHelper, который выполняется перед каждым приемочным тестом. Что-то вроде предложенного здесь. В приложении много тестов. Итак, поток выглядит следующим образом

- tests/acceptance/application/<contains alot of tests related to application>

- tests/acceptance/location/<contains alot of tests related to location>

Оба тестовых каталога /application/ и /location/ используют один и тот же AcceptanceHelper. Итак, я хочу, чтобы исполняемый файл дампа для всех тестов внутри каталога /application/ отличался от файла /location/ тестов.

Подумайте о чем-то вроде Получить имя текущего запущенного теста. Скажем, application_dump.sql для всех тестов в каталоге /application/ и location_dump.sql для всех тестов в каталоге /location/.

P.S: Using a different suite for application and location is ideally not what i am looking for.

person hashmi    schedule 31.01.2015    source источник


Ответы (1)


Просто чтобы помочь кому-то там. Поскольку не было надлежащего способа добиться этого, поскольку Получить имя текущего запущенного теста кажется все еще в развитие.

Итак, вот как мне удалось решить проблему. Я переместил shell_exec команды из _before метода AcceptanceHelper и создал новый общедоступный метод внутри AcceptanceHelper, доступ к которому можно получить через класс актера $I в каждом приемочном тесте, например так

$I->executeDbDump('application_dump.sql');
$I->executeDbDump('location_dump.sql');

Единственным недостатком этого подхода является то, что я должен выполнять соответствующую функцию executeDbDump перед каждым тестом вручную. Но по-прежнему кажется, что это лучший подход к проблеме сейчас.

person hashmi    schedule 03.02.2015