Ошибка при выполнении codecept run. Поддержка php 5.4

codeception
php
Теги: #<Tag:0x00007fedc7a70aa0> #<Tag:0x00007fedc7a70960>

(Сергей Жуков) #1

Приветствую всех. Пытаюсь запустить codecet run, и получаю ошибку

Codeception PHP Testing Framework v2.2.2
Powered by PHPUnit 5.4.6 by Sebastian Bergmann and contributors.
PHP Parse error:  syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /var/www/toplivo/data/www/host.ru/vendor/phpunit/phpunit/src/TextUI/TestRunner.php on line 383

Проблемная строка в самом файле:

            $codeCoverage->setUnintentionallyCoveredSubclassesWhitelist(
                [SebastianBergmann\Comparator\Comparator::class]
            );

Проблема связана с тем, что php 5.4, а не 5.5 и выше. Обновить php не предоставляется возможным.
А в changelog codeception написано, что была введена поддержка php 5.4. Там в конфиге может где то что то есть?


(Ray Romanov) #2

Походу это ошибка PHPUnit-а, а не Codeception.
Проверь какой версии PHPUnit установился и дружит ли эта версия с 5.4


(Ray Romanov) #3

Порывшись по исходникам PHPUnit-а, установил что эта строчка появилась в версии 5.2 и теперь смотрим требования к этой версии по ссылке https://packagist.org/packages/phpunit/phpunit#5.2.0 и что видим:

requires

php: >=5.6

Смотрим дальше, Codeception 2.2.2 по требованию зависимостей композера требует минимум

"phpunit/phpunit": ">4.8.20 <5.5"

Заглядываем в phpunit#4.8.0 и что видим

requires

php: ~5.3.3|~5.4|~5.5|~5.6

Т.е. полная не стыковка, мда :expressionless: по той строке.
Откатывай phpunit до 4.8.


(Сергей Жуков) #4

Я установил старую версию codeception, ошибки того же характера:

Codeception PHP Testing Framework v2.1.6
Powered by PHPUnit 4.8.26 by Sebastian Bergmann and contributors.
PHP Parse error:  syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /var/www/toplivo/data/www/site.ru/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php on line 63

(Ray Romanov) #5

Только в другом месте.