PHPUnit Текущий список узлов пуст

Я создаю некоторые функциональные тесты для тестирования моего контроллера. На данный момент у меня есть 2 функции. 1 для loggin in и 1 для жизненного цикла организации.

оба должны работать нормально (я думаю). Но я получаю следующую ошибку:

Текущий список узлов пуст

Я попытался удалить весь свой код из тестового класса без результата. Я также попытался добавить пустой метод, чтобы увидеть, также ли это происходит там. И да, да. Этот тест также падает.

Так что я искал Google для решения. Я пробовал несколько вещей, например:

( $ client = static :: createClient (массив (), массив ('HTTP_HOST' => 'symfony.dev')); )

var_dump ($ client-> GetResponse () -> getContent ()); (который получает страницу, где должен быть тест)

Изменить заголовок :

$response = $this->render('CMSBundle:Front:test.html.twig',); $response->headers->set('Content-Type', 'text/html'); return $response; 

И еще кое-что. Ни один из них не работал. Я не могу понять, в чем проблема.

У кого-нибудь есть предложения по этой проблеме?

Мой тестовый код:

 public function testLogin() { $client = $this->client; $crawler = $client->request('GET', '/admin/login'); $this->assertEquals(200, $client->getResponse()->getStatusCode(), "Unexpected HTTP status code for GET /admin/login"); // Fill in the form and submit it $form = $crawler->selectButton('Inloggen')->form(array( '_username' => 'erik', '_password' => 'erik' )); $client->submit($form); } 

Заранее спасибо!

После некоторого поиска я нашел ответ здесь, в stackoverflow .

По умолчанию искатель symfony2 догадывается, что расположение сервера находится на «localhost». Но моего нет. Поэтому я должен был сказать сканеру, где искать.

Это код, который я должен был добавить 'HTTP_HOST' => 'my.server.location'

Добавление этого кода делает код таким:

 $this->client = static::createClient( array(), array( 'HTTP_HOST' => 'my.server.location', //dependent on server )); $this->client->followRedirects(true); 

Итак, теперь, когда я получаю url $crawler = $client->request('GET', '/admin/login'); , http://my.server.location/admin/login получит следующий URL: http://my.server.location/admin/login .

Надеюсь, это поможет кому угодно!

И кредиты Мэтту за ответ