Неисправные тесты PHPUnit 3.7.19 и Symfony2

я разрабатываю какой-то тест для проекта Symfony2.0 и запускаю его с помощью PHPUnit.

На моем ПК работает нормально, но при попытке их в других средах тесты не пройдены. Я думал, что проблема в версии PHP, но после запуска их в разных средах яЯ потерян.

Моя среда - Ubuntu 12.04 и PHP 5.3.10 => Работает отлично.

2 ПК с Ubuntu 12.10 и PHP 5.4.6:

Fatal error:  Call to a member function get() on a non-object

Эта ошибка в классе, который распространяетсяSymfony \ Bundle \ FrameworkBundle \ Test \ WebTestCase где перезаписываются методы setUp () и tearDown ().

public function setUp()
{
    $this->client = static::createClient();
    $this->client->followRedirects(true);

    $crawler = $this->client->request('GET', '/admin/login');

    $loginForm = $crawler->selectButton('save')->form(array(
        '_username' => 'user',
        '_password' => 'pass'
        ));
    $this->client->submit($loginForm);

    $this->container = $this->client->getContainer();
    parent::setUp();
}

public function tearDown()
{
    //Here is get() on a non-object, $this->container doesn't exists
    $this->container->get('doctrine.odm.mongodb.document_manager')->getConnection()->close();
    parent::tearDown();
}

2 ПК, один с Ubuntu 12.10 и PHP 5.4.6, а другой с Windows 7 и PHP 5.3.8:

PHP Fatal error:  Call to a member function getSite() on a non-object

Эта ошибка относится к классу, который расширяет вышеприведенный класс с неправильным методом tearDown (), но в этом случае этот класс работает, и ошибка отличается, хотя она связана с $ this->контейнер:

//In this case, the user doesn't exists
$site = $this->container->get('security.context')
        ->getToken()->getUser()->getSite();

Проблема в том, что я нене знаю почему это. Если это связано с PHP, PHPUnit (у всех нас одинаковая версия), Symfony2.0 или SO.

Редактировать:

Хорошо, проблемы решены.

Первый:

Fatal error:  Call to a member function get() on a non-object

В классе была неправильная строка кода с методами setUp () и tearDown (). Вот такая строка:

$link = $crawler->filter('a:contains("Test")')->eq(1)->link();

Я прокомментировал эту строку, извините :). Но я неНе знаю, почему PHPUnit показывает мне эту ошибку, а не ошибку метода ссылки.

Во-вторых:

PHP Fatal error:  Call to a member function getSite() on a non-object

В других средах тестовая база данных не была развернута.

Этот вопрос никому не поможет, но поможет мне попробовать что-то новое. Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос