Есть сайт на yii2 с шаблоном basic. Я пишу “api” тесты. На самом деле это не чистые api тесты, а тестирование экшенов сайта посредством REST API.
У сайта есть папка config c глобальными переменными для всего сайта. Работа экшенов завязана на значения этих переменных.
Как можно передать (изменить) другое значение какой-либо глобальной переменной перед запуском теста
Подключение тестовых конфигов в yii2/ Замена значения глобальной переменной
Re: Подключение тестовых конфигов в yii2/ Замена значения глобальной переменной
Спасибо, жаль что я не понимаю...
Мне неясно как в index-test.php подключать разные конфиги для разных тестов
Мне неясно как в index-test.php подключать разные конфиги для разных тестов
Re: Подключение тестовых конфигов в yii2/ Замена значения глобальной переменной
Простите, но я сейчас как слепой и тупой
Переопределение конфига - мне ясно.
Но тут немного не то.
Есть к примеру Cest тест. И я хочу в тесте запустить yii приложение с нужным мне конфигом (если это возможно).
В моём не тестовом конфиге содержится много констант, которые как я писал выше связаны с работой экшенов. Константы могут принимать к примеру 3 значения. И вот тогда нужно переопределять конфиг 3 раза и как это сделать я до сих по не понял
Переопределение конфига - мне ясно.
Но тут немного не то.
Есть к примеру Cest тест. И я хочу в тесте запустить yii приложение с нужным мне конфигом (если это возможно).
В моём не тестовом конфиге содержится много констант, которые как я писал выше связаны с работой экшенов. Константы могут принимать к примеру 3 значения. И вот тогда нужно переопределять конфиг 3 раза и как это сделать я до сих по не понял
Re: Подключение тестовых конфигов в yii2/ Замена значения глобальной переменной
В каждом функциональном тесте одни и те же константы подменить не получится.
Вместо констант используйте переменные окружения:
и в каждом тесте переопределяйте их через:
Например, можно добавить кастомный метод haveEnv в FunctionalTester и вызывать его:
Вместо констант используйте переменные окружения:
Код: Выделить всё
'params' => [
'color' => getenv('COLOR') ?: 'red',
],
Код: Выделить всё
putenv('COLOR=green');
Код: Выделить всё
$I->haveEnv('COLOR', 'green');
$I->sendGet('...');