Symfony 4 и Behat: как внедрить диспетчер сущностей

Я давно использую behat и symfony. У меня есть несколько контекстов, которые используют диспетчер сущностей для создания некоторых тестовых данных, но когда я начал использовать Symfony 4, я не мог найти способ внедрить их в контекст.

Я думаю, что ближе всего я использовал ContextServiceExtension из FOB, но я всегда получаю эту ошибку

The service "mysite.context.catalog" has a dependency on a non-existent service "doctrine.orm.default_entity_manager".

Это мой services.xml для behat:

<?xml version = "1.0" encoding = "UTF-8" ?>
<container xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://symfony.com/schema/dic/services">
    <services>
        <service id = "mysite.context.catalog" class = "Shopery\MySite\Behat\CatalogContext">
            <argument type = "service" id = "doctrine.orm.default_entity_manager" />
            <tag name = "fob.context_service" />
        </service>
    </services>
</container>

А это мой behat.yml:

default:
  formatters:
    pretty:
      verbose: true
      paths: true
      snippets: true

  extensions:
    FriendsOfBehat\CrossContainerExtension: ~

    FriendsOfBehat\SymfonyExtension:
      env_file: .env_test
      kernel:
        bootstrap: ~
        class: 'Shopery\Ecommerce\Infrastructure\Symfony\Kernel'
        path: src/Infrastructure/Symfony/Kernel.php
        debug: true

    FriendsOfBehat\ContextServiceExtension:
       imports:
        - "tests/Behat/config/services.xml"

    Behat\MinkExtension:
      base_url: 'http://ecommerce.wip/'
      sessions:
        default:
          goutte: ~

  gherkin:
    cache: ~

  suites:
    default:
      paths:
        - "%paths.base%/tests/functional"

      contexts:
        - Behat\MinkExtension\Context\MinkContext

      contexts_services:
        - mysite.context.catalog

Когда вы запускаете bin / console debug: container, у вас есть эта служба доктрины или нет?

Eakethet 07.06.2018 14:12

@Eakethet да, безусловно, сервис существует. Я получаю ту же ошибку с любой другой службой

petekaner 07.06.2018 14:21

а почему ваш service.yaml имеет тип XML?

Eakethet 07.06.2018 14:51

извините, это services.xml

petekaner 07.06.2018 15:04

когда вы вводите bin / console debug: container doctrine.orm.default_entity_manager is Public Да? Или это так же личное?

Eakethet 07.06.2018 15:49

они общедоступны, я думаю, проблема в том, что у Symfony разные контейнеры

petekaner 08.06.2018 11:15
Стоит ли изучать 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 нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
6
991
0

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