2012-03-12 23 views
4

我发现,在Symfony2的功能测试总是试图请求的页面为“HTTP:// localhost”的

我的环境是建立与虚拟主机,所以我在有我的应用“ http://symfony.dev”

一些测试后,我发现,如果我运行:

var_dump($client->getResponse()->getContent()); 

我会得到我想要的页面,但如果我的var_dump的$履带我可以看到,而比请求“http://symfony.dev/page”这样的页面要求“http:// localhost /页“

这给了404,所以我无法测试表单等。

是否有无论如何设置基地网址,以使其工作?我应该改用Selenium之类的东西吗?

+0

访问http:// localhost的功能测试是正常的,因为它不是一个完整的http请求,而是模拟一个。尝试查看您的应用/日志以确定错误。 – 2012-03-12 09:14:23

+0

我知道错误是什么。它正在访问localhost,它被设置为与我的应用程序不同的虚拟服务器,因此它请求的页面只是404。我想知道是否可以改为使用域名爬虫,或者以某种方式找到解决方法。 – Matt 2012-03-12 19:45:17

回答

13

我发现我可以将域传递给客户端。我将用这个功能做一个基地WebTestCase,这样我的测试工作。

$client = static::createClient(array(), array('HTTP_HOST' => 'symfony.dev')); 
$client->followRedirects(true);