Как запустить тесты 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.

Отладка bin / console: маршрутизатор показывает маршрут? И просто для усмешки измените путь на что-то вроде '/ admin'. Не уверен, что делает маршрут с пустым путем, хотя не думаю, что это проблема. Дважды проверьте свой отступ.

Cerad 14.03.2018 22:50

Действительно, не работает. Я до сих пор не понимаю, почему, поскольку я предполагаю, что раньше использовал эти файлы маршрутизации.

Guillaume M. 14.03.2018 23:10

Я проверил отступы безуспешно. Работает если перейду на SF3 записываю defaults: { _controller: App\Controller\Admin\HomeController::home }

Guillaume M. 14.03.2018 23:12

И отладка bin / console: роутер показывает ту же ошибку? Честно говоря, я не вижу проблемы. Вы уверены, что смотрите нужный файл? Может быть, сломайте новый скелет и ничего не сделайте, кроме как добавить свой файл маршрута. Сообщение об ошибке действительно очень странное.

Cerad 14.03.2018 23:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
2
4
1 442
2

Ответы 2

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

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

admin_home:
    path: ''
    defaults: { _controller: App\Controller\Admin\HomeController::home }

Какие требования? Как сказано в вопросе, я использую Symfony 4 "symfony/framework-bundle": "^4.0",

Guillaume M. 14.03.2018 23:46

@GuillaumeM и symfony/routing? (composer show symfony/routing)

Wouter J 15.03.2018 01:48
versions : * v4.0.6. Также есть "конфликты" частей с 3 строчками: symfony/config <3.4; symfony/dependency-injection <3.4, symfony/yaml <3.4. Это проблема?
Guillaume M. 15.03.2018 20:50

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

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

Не стесняйтесь обновлять этот ответ. Я не могу объяснить, почему это работает, хотя команды композитора ничего не сделали.

Guillaume M. 15.03.2018 22:31

Это был новый проект для начала или вы пытались обновить существующий старый? Composer замечательный, но иногда обновление между основными версиями может привести к забавным проблемам. А иногда просто удаление всего каталога кеша работает как по волшебству.

Cerad 17.03.2018 16:00

Другие вопросы по теме