Behat + Mink не работает с прокси (DNS не может разрешить доменное имя)
У меня есть простая функция Behat, которая использует Mink для тестирования веб-приложения, домен которого, скажем, http://myapp.localhost
(У меня есть запись как 127.0.0.1 myapp.localhost
в моем hosts
файл).
Проблема в том, что когда я запускаю эту функцию, все, что получает драйвер Mink, когда просматривает любой URL в приложении (например, с помощью When I go to "/some/url"
шаг) это страница с ошибкой от прокси-сервера, говорящая, что домен myapp.localhost
не может быть решен. Адрес прокси-сервера устанавливается env. переменная: export http_proxy=...
,
Внешние веб-сайты работают очень хорошо (как пример с Википедией из документации Behat).
Мой браузер может связаться с приложением, потому что есть настройка, которая говорит браузеру не использовать прокси, когда домен *.localhost
,
Как заставить Минка игнорировать прокси?
Потратил сегодня час, чтобы определить проблему.
1 ответ
Решение, которое я использую, не очень элегантно, но это самый простой способ, о котором я могу думать. У меня есть какой-то инструмент для сборки, написанный на Bash, который имеет следующую функцию для вызова Behat:
function run_behat {
local http_proxy_backup=$http_proxy
export http_proxy=;
bin/behat $@ # passing all args to behat
# if you use phar version of behat, it will be like `php behat.phar $@`
export http_proxy=$http_proxy_backup
}
В основном я просто временно установил http_proxy
чтобы очистить значение, вызовите behat, а затем восстановите http_proxy
Начальное значение.
Он вызывается из моего сценария так:
if [ $1 == "behat" ]; then
run_behat ${*:2}; # pass all args but 1st
fi