Подключение тестовых конфигов в yii2/ Замена значения глобальной переменной

Всё про тестирование в Yii 2.0
Ответить
spinik
Сообщения: 3
Зарегистрирован: 2020.11.24, 17:03

Подключение тестовых конфигов в yii2/ Замена значения глобальной переменной

Сообщение spinik »

Есть сайт на yii2 с шаблоном basic. Я пишу “api” тесты. На самом деле это не чистые api тесты, а тестирование экшенов сайта посредством REST API.
У сайта есть папка config c глобальными переменными для всего сайта. Работа экшенов завязана на значения этих переменных.
Как можно передать (изменить) другое значение какой-либо глобальной переменной перед запуском теста


spinik
Сообщения: 3
Зарегистрирован: 2020.11.24, 17:03

Re: Подключение тестовых конфигов в yii2/ Замена значения глобальной переменной

Сообщение spinik »

Спасибо, жаль что я не понимаю...
Мне неясно как в index-test.php подключать разные конфиги для разных тестов


spinik
Сообщения: 3
Зарегистрирован: 2020.11.24, 17:03

Re: Подключение тестовых конфигов в yii2/ Замена значения глобальной переменной

Сообщение spinik »

Простите, но я сейчас как слепой и тупой
Переопределение конфига - мне ясно.
Но тут немного не то.
Есть к примеру Cest тест. И я хочу в тесте запустить yii приложение с нужным мне конфигом (если это возможно).
В моём не тестовом конфиге содержится много констант, которые как я писал выше связаны с работой экшенов. Константы могут принимать к примеру 3 значения. И вот тогда нужно переопределять конфиг 3 раза и как это сделать я до сих по не понял

Аватара пользователя
ElisDN
Сообщения: 5658
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Подключение тестовых конфигов в yii2/ Замена значения глобальной переменной

Сообщение ElisDN »

В каждом функциональном тесте одни и те же константы подменить не получится.

Вместо констант используйте переменные окружения:

Код: Выделить всё

'params' => [
    'color' => getenv('COLOR') ?: 'red',
],
и в каждом тесте переопределяйте их через:

Код: Выделить всё

putenv('COLOR=green');
Например, можно добавить кастомный метод haveEnv в FunctionalTester и вызывать его:

Код: Выделить всё

$I->haveEnv('COLOR', 'green');
$I->sendGet('...');

Ответить