为什么PHPUnit中的Symfony URL生成器指向localhost?
我在PHP 5.6中使用Symfony 3,我已经用PHPUnit设置了一个unit testing,它向控制器发出一个请求:
$this->client->request('GET', '/api');
URL /api
的控制器同时向本地Web服务器发出多个Curl请求。 像这样的东西:
do_http_requests([ $this->get('router')->generate( 'route', $params, UrlGeneratorInterface::ABSOLUTE ), ... ]);
这是因为生成的URL指向localhost
( http://localhost/...
)而不是web
( http://web/...
),这是我为本地web服务器设置的主机名。 我得到一个错误说, Connection refused
,因为没有监听主机localhost
。 服务器在主机web
上运行。
我还设置了一个环境variables:
SYMFONY__ROUTER__REQUEST_CONTEXT__HOST=web
我希望router
服务能够获取该环境variables,并据此生成URL,如本指南中所述 。 但事实并非如此。
我误解或错过了什么?
我将不胜感激任何帮助,您可以提供。 谢谢 !
我应该在testing中使用这个:
$this->client->request('GET', '/api', [], [], ['HTTP_Host' => 'web']