【问题标题】:Behat with symfony flexBehat 与 symfony flex
【发布时间】:2017-11-20 14:51:58
【问题描述】:

我想在 symfony flex 中使用 behat 当我在构造函数内的 behat 上下文文件中注入服务时,自动连线不起作用。 我需要将服务显式配置为公开以使用该服务。 是否有另一种方法可以在不公开的情况下在 behat 上下文文件中注入服务?

我在这里遇到错误 编译容器时,“App\DataConsumer”服务或别名已被删除或内联。您应该将其公开,或者直接停止使用容器并改用依赖注入。

behat.yml
   default:
     suites:
       default:
         contexts:
            - FeatureContext:
                 kernel: '@kernel'

            - ImageConsumerContext:
                 dataConsumer: '@App\DataConsumer'

【问题讨论】:

    标签: behat symfony-flex


    【解决方案1】:

    更新:

    从 Symfony 4.1 开始,允许从测试中获取私有服务。

    “默认私人服务”唯一剩下的缺点是测试比以前更难。一些开发人员甚至在测试环境中定义了一些配置,以便在测试中公开所有服务。在 Symfony 4.1 中,我们做了同样的事情,现在测试默认允许获取私有服务。

    来源:https://symfony.com/blog/new-in-symfony-4-1-simpler-service-testing


    您可以只为您的测试环境公开该服务。

    config/services_test.yaml 中添加:

    services:
      ...
      test.App\DataConsumer: '@App\DataConsumer'
    

    然后在你的 behat.yml 中:

    default:
      suites:
        default:
          contexts:
            - FeatureContext:
              kernel: '@kernel'
    
            - ImageConsumerContext:
              dataConsumer: '@test.App\DataConsumer'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 2017-02-10
      相关资源
      最近更新 更多