我有一个简单的Behat使用 Mink 测试 webapp 的功能,例如 http://myapp.localhost
(我的 中有一条类似
文件)。127.0.0.1 myapp.localhost
的记录主机
问题是,当我运行该功能时,Mink 驱动程序在浏览到应用程序中的任何 URL 时获得的所有内容(例如使用 当我转到“/some/url”
步骤时)是来自代理服务器的错误页面,指出无法解析域 myapp.localhost
。代理服务器地址由env设置。变量:导出 http_proxy=...
。
外部网站运行良好(例如 Behat 文档中的 example with Wikipedia)。
我的浏览器可以访问该应用程序,因为有一个设置告诉浏览器在域为 *.localhost
时不要使用代理。
如何强制Mink忽略代理?
今天花了一个小时来确定问题。
最佳答案
我使用的解决方案不是很优雅,但这是我能想到的最简单的方法。我有某种用 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
关于dns - Behat + Mink 无法使用代理(DNS 无法解析域名),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13517583/