我有一个简单的Behat功能,使用Mink测试webapp,该域名是http://myapp.localhost
(我的127.0.0.1 myapp.localhost
文件中有hosts
的记录。
问题是,当我运行该功能时,Mink驱动程序在浏览到应用程序中的任何URL时所获得的所有内容(例如,使用When I go to "/some/url"
步骤)是来自代理服务器的错误页面,称该域{ {1}}无法解决。代理服务器地址由env设置。变量:myapp.localhost
。
外部网站工作得很好(比如Behat文档中的example with Wikipedia)。
我的浏览器可以访问该应用,因为有一个设置告诉浏览器在域export http_proxy=...
时不使用代理。
如何强制Mink忽略代理?
今天花了一个小时来解决这个问题。
答案 0 :(得分:2)
我使用的解决方案不是很优雅,但这是我能想到的最简单的方法。我有一些用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