2

我有一个简单的Behat功能,它使用 Mink 来测试 webapp 是哪个域,比如说(我的文件中http://myapp.localhost有一条记录)。127.0.0.1 myapp.localhosthosts

问题是,当我运行该功能时,Mink 驱动程序在浏览到应用程序中的任何 URL(例如,使用When I go to "/some/url"step)时得到的所有内容都是来自代理服务器的错误页面,表示myapp.localhost无法解析域。代理服务器地址由 env 设置。变量:export http_proxy=...

外部网站运行良好(例如Behat docs中的 Wikipedia 示例)。

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

如何强制 Mink 忽略代理?

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

4

1 回答 1

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
于 2012-11-22T17:29:06.623 回答