Не удается отправить сеанс cookie – уже отправлены заголовки PHPUnit / Laravel

У меня есть эта странная проблема, когда я вызываю parent::setUp() в моем классе TestCase для модульного тестирования класса, когда я запускаю phpunit, чтобы он меня выбрал для этой ошибки:

1) MatchRequestRepositoryTest :: test_find_requests_by_match_id ErrorException: session_start (): Не удается отправить cookie сеанса – уже отправленные заголовки (вывод запущен в /var/www/project.dev/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php:459)

В чем проблема? Спасибо за любую помощь.

Solutions Collecting From Web of "Не удается отправить сеанс cookie – уже отправлены заголовки PHPUnit / Laravel"

Проблема в том, что у вас есть код, возможно, глубоко в используемой структуре, который вызывает session_start() . Это, в свою очередь, хочет отправить cookie. Но PHPUnit уже начал писать вывод в stdout.

Ключом к пониманию здесь является то, что это всего лишь единичный тест, никто не заботится о заголовке. Поэтому просто подавляйте сообщение об ошибке. И способ, которым вы это делаете, без изменения системного теста, заключается в вызове session_start () в вашем собственном модульном тесте (либо перед parent::setUp() либо внутри этой функции setUp). И используйте префикс @ для подавления ошибок. например

 function setUp(){ @session_start(); parent::setUp(); ... } 

Лучший способ сделать это в PHPUnit – отправить вывод в stderr вместо stdout, как показано в этом ответе .

 phpunit --stderr