PHP → Warning: Declaration of PhpStorm_Codeception_ReportPrinter

If you have an error like:

Warning: Declaration of PhpStorm_Codeception_ReportPrinter::writeProgress($progress): void should be compatible with PHPUnit\TextUI\ResultPrinter::writeProgress(string $progress): void in /private/var/folders/tk/bzhc9dbn5wn4nb_v8kznlwh40000gn/T/ide-codeception

while running PHPUnit test in PHPStorm, just check CLI Interpreter version. Latest version of PHPUnit require "php": "^7.2"

I hope it will save a small piece of your time.

  • slo_nik

    Добрый день.
    Да, действительно убирает предупреждение))) Почему-то сразу не смог найти решение в сети, пока сегодня не дали ссылку на Ваш сайт.
    Но теперь возникла другая проблема.
    При запуске тестов получаю сообщение
    session_set_cookie_params(): Cannot change session cookie parameters when headers already sent
    Если я запускаю тесты через консоль, то этой ошибки нет.
    p.s.
    Codeception установлен глобально в систему.

  • Ошибка говорит о том, что функция не может установить HTTP заголовки, т.к. уже был вывод данных в тело ответа. Вам необходимо найти где у вас осуществляется вывод (echo) до старта сессии или отправки кук.

  • slo_nik

    Я знаю, о чём говорит эта ошибка и знаю как её исправить.
    Проблема в том, что эта ошибка возникает тогда, когда запускаю тестирование через phpstorm, если запустить из терминала системы или терминала самого phpstorma, то ошибки нет, всё работает отлично.
    Тем более что код рабочий, никаких ошибок в работе нет.

  • Дайте больше информации Yii? раните исключительно юнит тесты?

  • slo_nik

    Да, YII2.
    Проект чистый, только установлен, никаких изменений в скрипты не вносились. Только настройка подключения к базе данных.
    Решил сразу настроить тестирование.
    Codeception, phpunit установлены в систему глобально. Система Ubuntu 16.04.
    Вот полностью ошибка(unit)
    session_set_cookie_params(): Cannot change session cookie parameters when headers already sent
    /home/slonik/localhost/www/test.loc/yii2_codecept/vendor/yiisoft/yii2/web/Session.php:388
    /home/slonik/localhost/www/test.loc/yii2_codecept/vendor/yiisoft/yii2/web/Session.php:135
    /home/slonik/localhost/www/test.loc/yii2_codecept/vendor/yiisoft/yii2/web/Session.php:635
    /home/slonik/localhost/www/test.loc/yii2_codecept/vendor/yiisoft/yii2/web/User.php:653
    /home/slonik/localhost/www/test.loc/yii2_codecept/vendor/yiisoft/yii2/web/User.php:252
    /home/slonik/localhost/www/test.loc/yii2_codecept/models/LoginForm.php:63
    /home/slonik/localhost/www/test.loc/yii2_codecept/tests/unit/models/LoginFormTest.php:46
    /home/slonik/.composer/vendor/symfony/console/Application.php:262
    /home/slonik/.composer/vendor/symfony/console/Application.php:145
    /tmp/ide-codeception.php:40

    Для функциональных тестов тоже самое, только файлы yii2 другие указывает.

    Если запустить в корне проекта через терминал phpstorm или через стандартный терминал Ubuntu — ошибок нет. Всё работает отлично.
    А вот через встроенные инструменты phpstorm — заканчивается ошибкой.

  • slo_nik

    Добрый день.
    А почему удалили ссылки на полный текст ошибок?

  • Ничего не удалял, скорее всего ограничения системы комментирования Disqus

  • slo_nik

    Странно…
    Ну да ладно.
    Как можно исправить в данной ситуации ошибку с сессиями?