Невозможно выполнить тест действия/маршрута Laravel 4 более одного раза

Я столкнулся с проблемой тестирования Laravel 4: тест действия/маршрута можно запустить только один раз, и это должен быть первый тестовый запуск. Любое последующее действие/проверка маршрута завершится ошибкой с исключением до вызова утверждения.

  • тесты маршрута/действия выполняются до тех пор, пока они являются первым тестовым запуском.
  • Тесты без маршрута/действия выполняются нормально, хотя они приводят к тому, что последующие тесты маршрута/действия выдают исключение.

Важно отметить, что рассматриваемые тесты не терпят неудачу, они выдают исключение при запуске действия, например:

Symfony\Component\Routing\Exception\RouteNotFoundException: Unable to generate a URL for the named route "home" as such route does not exist.

Пример тестового класса:

class ExampleTest extends TestCase {

// passes
public function testOne()
{
    $class = MyApp::ApiResponse();
    $this->assertInstanceOf('\MyApp\Services\ApiResponse', $class);
}

// this fails unless moved the top of the file
public function testRoute()
{
    $this->route('GET','home');
    $this->assertTrue($this->client->getResponse()->isOk());
}

// passes
public function testTwo()
{
    $class = MyApp::ProjectService();
    $this->assertInstanceOf('\MyApp\Services\ProjectService', $class);
}

}

Это зависит от реализации, в новом проекте Laravel 4 такой проблемы нет. Что может быть причиной такого поведения? Как бы вы отследили проблему?


person Makita    schedule 01.08.2013    source источник


Ответы (1)


В этом случае файл маршрутов вызывался с помощью вызова include_once. При последующих тестах маршруты были пусты.

Переход на include() устранил проблему, указанную в вопросе.

person Makita    schedule 03.08.2013