friends-of-behat/context-service-extension

该软件包已弃用且不再维护。作者建议使用 friends-of-behat/symfony-extension 软件包。

允许在场景范围内容器中声明和使用上下文服务。

v1.3.0 2019-01-21 17:12 UTC

This package is auto-updated.

Last update: 2022-02-01 13:02:23 UTC


README

这个库已弃用!它将不再受到支持 - 如果您正在与 CrossContainerExtension v1 和 SymfonyExtension v1 一起使用,请考虑升级到 SymfonyExtension v2

允许在场景范围内容器中声明和使用上下文服务。

使用方法

  1. 安装它

    $ composer require friends-of-behat/context-service-extension --dev
  2. 在您的 Behat 配置中启用并配置上下文服务扩展

    # behat.yml
    default:
        # ...
        extensions:
            FriendsOfBehat\ContextServiceExtension:
               imports:
                   - "features/bootstrap/config/services.xml"
                   - "features/bootstrap/config/services.yml"
                   - "features/bootstrap/config/services.php"   
  3. 在上面的配置文件之一中,创建一个带有 fob.context_service 标签的服务。

    <!-- features/bootstrap/config/services.xml -->
    <?xml version="1.0" encoding="UTF-8" ?>
    <container xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://symfony.ac.cn/schema/dic/services">
        <services>
            <service id="acme.my_context" class="Acme\MyContext">
                <tag name="fob.context_service" />
            </service>
        </services>
    </container>
    # features/bootstrap/config/services.yml
    services:
        acme.my_context:
            class: Acme\MyContext
            tags:
                - { name: fob.context_service }
    // features/bootstrap/config/services.php
    use Symfony\Component\DependencyInjection\Definition;
    
    $definition = new Definition(\Acme\MyContext::class);
    $definition->addTag('fob.context_service');
    $container->setDefinition('acme.my_context', $definition);
  4. 配置您的测试套件以使用 acme.my_context 上下文服务(注意 contexts_services 键而不是 contexts 键)

    # behat.yml
    default:
        # ...
           suites:
               default:
                   contexts_services:
                       - acme.my_context
  5. 享受在依赖注入容器中定义为服务的上下文定义!🎉