Как запустить тесты phpunit на Symfony 4?

Когда я пытаюсь запустить функциональный тест на Symfony 4, я получаю следующее:

The routing file "{__PATH__}config/routes/admin.yaml" contains unsupported keys for "admin_home": "controller". Expected one of: "resource", "type", "prefix", "path", "host", "schemes", "methods", "defaults", "requirements", "options", "condition", "ControllerTest"

Я не понимаю, почему, потому что моя конфигурация маршрутизации соответствует официальной документации:

admin_home:
    path: ''
    controller: App\Controller\Admin\HomeController::home

Официальный документ: http://symfony.com/doc/current/routing.html (на вкладках YAML я не устанавливал пакет аннотаций). Где «контроллер» — это поддерживаемый ключ.

Я установил пакет PHPUnit composer require --dev symfony/phpunit-bridge, затем запускаю ./vendor/bin/simple-phpunit.


person Guillaume M.    schedule 14.03.2018    source источник
comment
Показывает ли bin/console debug:router маршрут? И просто для улыбки измените путь на что-то вроде «/admin». Не уверен, что маршрут делает с пустым путем, хотя я не думаю, что это проблема. Дважды проверьте свой отступ.   -  person Cerad    schedule 15.03.2018
comment
Действительно, это не работает. Я до сих пор не понимаю, почему, так как я предполагаю, что раньше использовал эти файлы маршрутизации.   -  person Guillaume M.    schedule 15.03.2018
comment
Я проверил отступы без успеха. Это работает, если я перейду на SF3, написав defaults: { _controller: App\Controller\Admin\HomeController::home }   -  person Guillaume M.    schedule 15.03.2018
comment
И bin/console debug:router показывает ту же ошибку? Я честно не вижу проблемы. Вы уверены, что смотрите на правильный файл? Может быть, снести новый скелет и ничего не делать, кроме как добавить свой файл маршрута. Сообщение об ошибке действительно очень странное.   -  person Cerad    schedule 15.03.2018


Ответы (2)


Это новый синтаксис, представленный в Symfony 3.4/4.0.

В более старых версиях вы должны использовать:

admin_home:
    path: ''
    defaults: { _controller: App\Controller\Admin\HomeController::home }
person Wouter J    schedule 14.03.2018
comment
Каковы требования? Как сказано в вопросе, я использую Symfony 4 "symfony/framework-bundle": "^4.0", - person Guillaume M.; 15.03.2018
comment
@GuillaumeM и symfony/routing ? (composer show symfony/routing) - person Wouter J; 15.03.2018
comment
versions : * v4.0.6. Также есть конфликтные части с 3 строками: symfony/config <3.4; symfony/dependency-injection <3.4, symfony/yaml <3.4. Это проблема? - person Guillaume M.; 15.03.2018

Поскольку мне не удалось воспроизвести проблему в новом проекте, даже с тем же файлом composer.json, я повторил попытку удалить каталог поставщика.

Оно работает.

person Guillaume M.    schedule 15.03.2018
comment
Не стесняйтесь обновлять этот ответ. Я не могу объяснить, почему это работает, а использование команд композитора ничего не сделало. - person Guillaume M.; 16.03.2018
comment
Был ли это новый проект с самого начала или вы пытались обновить существующий старый? Composer прекрасен, но иногда обновление между основными версиями может привести к забавным проблемам. А иногда простое удаление всего каталога кеша работает как по волшебству. - person Cerad; 17.03.2018