Ошибка установки cookie при запуске тестов (codeception) на Yii2 в PhpStorm

При запуске тестов (Codeception) из PhpStorm для Yii2 может появляться ошибка перезаписи cookie.

Текст ошибки:

Testing started at 19:22 ...
[vagrant://d:\projects\testforblogproject]:/usr/bin/php /home/vagrant/.phpstorm_helpers/codeception.php run --report -o "reporters: report: PhpStorm_Codeception_ReportPrinter" --no-ansi --no-interaction
Codeception PHP Testing Framework v2.5.4
Powered by PHPUnit 7.5.6-10-g6a93fd3 by Sebastian Bergmann and contributors.
Running with seed: 
 
 
session_set_cookie_params(): Cannot change session cookie parameters when headers already sent
 /app/vendor/yiisoft/yii2/web/Session.php:388
 /app/vendor/yiisoft/yii2/web/Session.php:135
 /app/vendor/yiisoft/yii2/web/Session.php:612
 /app/vendor/yiisoft/yii2/web/Session.php:704
 /app/vendor/yiisoft/yii2/web/Session.php:871
 /app/views/site/contact.php:17
 /app/vendor/yiisoft/yii2/base/View.php:348
 /app/vendor/yiisoft/yii2/base/View.php:257
 /app/vendor/yiisoft/yii2/base/View.php:156
 /app/vendor/yiisoft/yii2/base/Controller.php:384
...

Для её исправления включите буферизацию вывода с помощью стандартной PHP-функции ob_start() в bootstrap-файле тестов. По умолчанию Yii2 создает директорию “tests” в корне проекта и генерирует bootstrap-файл для запуска тестов – “../tests/_bootstrap.php”:

<?php
define('YII_ENV', 'test');
defined('YII_DEBUG') or define('YII_DEBUG', true);
 
require_once __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
require __DIR__ .'/../vendor/autoload.php';
 
ob_start(); // <------------ Буферизация вывода.

Полезные ссылки:

Добавить комментарий