PHPUnit Работает локально, но некоторые тесты не пройдены на TravisCI - Код состояния [500] - PullRequest
0 голосов
/ 30 мая 2018

В настоящее время я провожу некоторые тесты, и все отлично работает локально.Как только я запускаю их на Travis, я получаю сообщение об ошибке, но не могу объяснить, почему.

Интересный факт: я использую, например, тот же код (только с разными маршрутами) в других тестах, и он работает локальнои на Трэвисе.

Tests: 372, Assertions: 906, Failures: 1.

Я пытался найти обходной путь с помощью вызова страницы с помощью JSON или GET-запроса вместо использования метода посещения.Без успехаобходные пути

$this->call('GET', route($route));

или

$this->visit(route($route))

Есть предложения?

1 Ответ

0 голосов
/ 30 мая 2018

Проблема правильно существует в коде, который вы не разместили здесь.Проблема в том, что ошибка обрабатывается в коде и преобразуется в страницу ошибки.Это хорошо при посещении страницы в браузере, но не так хорошо при отладке ваших тестов.Вы можете обойти это, отключив обработчик исключений.

В вашем основном файле testcase.php добавьте эту функцию:

protected function disableExceptionHandling()
{
    $this->oldExceptionHandler = $this->app->make(ExceptionHandler::class);
    $this->app->instance(ExceptionHandler::class, new class extends Handler {
        public function __construct() {}
        public function report(\Exception $e) {}
        public function render($request, \Exception $e) {
            throw $e;
        }
    });
}

Затем в тестах, которые не пройдут, вы добавите эту строкув верхней части теста:

$this->disableExceptionHandling();

У вас все еще будет ошибка, но она будет намного более ясной.

...