Я пытаюсь написать тест API для контроллера в среде php Symfony, используя ApiPlatform\Symfony\Bundle\Test\ApiTestCase, но когда я выдаю исключение (нарушение ограничений) в контроллере, я получаю следующий вывод в консоли:
...[error] Uncaught PHP Exception ApiPlatform\Symfony\Validator\Exception\ValidationException: "Exception message" at /srv/src/Repository/MyRepository line 244
string(0) ""
....... 10 / 10 (100%)
который, как видите, разрывает пунктирные линии и пишет сообщение об ошибке.
Проблема только визуальная, но она все еще беспокоит меня, поскольку результаты теста станут нечитаемыми, когда будут выполнены новые подобные тесты.
$response = $this->client->request('POST', '/api/test', [
'headers' => [
'Authorization' => $this->token,
],
'json' => [
'data1' => 1,
'data2' => 1
],
]);
$this->assertResponseStatusCodeSame(Response::HTTP_UNPROCESSABLE_ENTITY);
$this->assertEquals('Exception message', $response->toArray(false)['violations'][0]['message']);
$violation = new ConstraintViolation('Exception message', '', [], '', '', '');
throw new ValidationException((new ConstraintViolationList([$violation])));
Тесты проходят нормально, ответ правильный, HTTP-код тоже в порядке, но этого вывода в консоль, на мой взгляд, быть не должно.
Могу ли я как-то отключить его?




Установка monolog и настройка его для сброса ошибок в файл журнала решили проблему.
Обычно запуск
composer require loggerустанавливаетmonologи решает проблему. Журналы будут записываться в файл в каталоге./var.