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
Другие вопросы по тегам