friends-of-behat/context-service-extension

This package is abandoned and no longer maintained. The author suggests using the friends-of-behat/symfony-extension package instead.

Allows to declare and use contexts services in scenario scoped container.

Maintainers

👁 Stof
👁 pamil

Package info

github.com/FriendsOfBehat/ContextServiceExtension

pkg:composer/friends-of-behat/context-service-extension

Statistics

Installs: 575 011

Dependents: 57

Suggesters: 1

Stars: 115

Open Issues: 1

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

Requires

Provides

None

Conflicts

None

Replaces

None

MIT 850299407ff45d3a71b1639f6a1975ed898975db

This package is auto-updated.

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


README

This library is deprecated! It will not be supported anymore - if you're using it with CrossContainerExtension v1 and SymfonyExtension v1, please consider an upgrade to SymfonyExtension v2.

Allows to declare and use contexts services in scenario scoped container.

Usage

  1. Install it:

    $ composer require friends-of-behat/context-service-extension --dev
  2. Enable and configure context service extension in your Behat configuration:

    # behat.yml
    default:
     # ...
     extensions:
     FriendsOfBehat\ContextServiceExtension:
     imports:
     - "features/bootstrap/config/services.xml"
     - "features/bootstrap/config/services.yml"
     - "features/bootstrap/config/services.php" 
  3. Inside one of those files passed to configuration above, create a service tagged with 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="http://symfony.com/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. Configure your suite to use acme.my_context context service (note contexts_services key instead of contexts):

    # behat.yml
    default:
     # ...
     suites:
     default:
     contexts_services:
     - acme.my_context
  5. Have fun with your contexts defined in DI container as services! 🎉