пятница, 8 марта 2019 г.

Установка переменных среды в Windows для PHPUnit

На новом проекте используем mongoDB. Docker у меня установлен под Wndows (Docker Toolbox). Для тестов используется phpUnit.

Когда запускаются тесты в баше workspace'а - все нормально работает. Проблемы появляются при запуске тестов в phpStorm'e.  Он не может найти хост 'mongo', указанный в конфигурации проекта для mongoDB. Оно и понятно - это внутренний IP, выданный докером контейнеру mongoDB, и из-под хоста (Windows) о нем ничего не известно. Сама виртуальная машина получает IP 192.168.99.100. Таким образом, нужно как-то указать phpStorm, что mongo нужно искать по этому IP-шнику. То есть, нужно заменить параметры конфигурации mongoDB, причем только для phpStorm.

Наиболее простой способ - переопределить переменную среды в файле phpUnit.xml, указав явно IP-адрес виутальной машины. Если же, по какой-то причине, редактировать phpUnit.xml нельзя, можно сделать 2 вещи:
1) Добавить переменные среды для phpUnit в настройках phpStorm (Menu->Run->Edit Configurations...->phpUnit.xml->Environment Variables). После этого появится возможность запускать тесты из среды phpStorm по Alt+Shift+F10.
2) Установка нужной переменной среды прямо в консоли phpStorm перед запуском тестов:
> SET DATABASE_HOST=192.168.99.199      (** вместо DATABASE_HOST - имя вашей переменной среды **)
> phpunit
После этого можно будет запускать тесты из консоли phpStorm'а.

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