行为+;貂皮疙瘩&x27;无法使用代理(DNS无法解析域名)

行为+;貂皮疙瘩&x27;无法使用代理(DNS无法解析域名),dns,proxy,bdd,behat,mink,Dns,Proxy,Bdd,Behat,Mink,我有一个简单的功能,它使用Mink测试webapp,比如说http://myapp.localhost(我在我的hosts文件中有一个类似127.0.0.1 myapp.localhost的记录) 问题是,当我运行该功能时,当Mink驱动程序浏览到应用程序中的任何URL时(例如,当我转到“/some/URL”步骤时使用)得到的所有内容都是来自代理服务器的错误页面,表示无法解析域myapp.localhost。代理服务器地址由env设置。变量:导出http\U代理=… 外部网站工作得很好(就像Be

我有一个简单的功能,它使用Mink测试webapp,比如说
http://myapp.localhost
(我在我的
hosts
文件中有一个类似
127.0.0.1 myapp.localhost
的记录)

问题是,当我运行该功能时,当Mink驱动程序浏览到应用程序中的任何URL时(例如,当我转到“/some/URL”步骤时使用
)得到的所有内容都是来自代理服务器的错误页面,表示无法解析域
myapp.localhost
。代理服务器地址由env设置。变量:
导出http\U代理=…

外部网站工作得很好(就像Behat文档中的一个链接)

我的浏览器可以访问应用程序,因为有一个设置告诉浏览器在域为
*.localhost
时不要使用代理

如何强制水貂忽略代理


今天花了一个小时来解决这个问题。

我使用的解决方案不是很优雅,但这是我能想到的最简单的方法。我有一些用Bash编写的构建工具,它有一个调用Behat的函数:

函数运行行为{
本地http\U代理\U备份=$http\U代理
导出http_代理=;
bin/behat$@#将所有参数传递给behat
#如果您使用behat的phar版本,它将类似于'php behat.phar'$@`
导出http\u proxy=$http\u proxy\u备份
}
基本上,我只是临时将
http\u proxy
设置为空值,调用behat,然后恢复
http\u proxy
初始值

它是从我的脚本中调用的,如下所示:

if[$1==“behat”];然后
运行_behat${*:2};#除第一名外,通过所有参数
fi