:jack_o_lantern: [DEPRECATED] Allows to declare and use contexts services in scenario scoped container.
Allows to declare and use contexts services in scenario scoped container.
Install it:
$ composer require friends-of-behat/context-service-extension --dev
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"
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);
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
Have fun with your contexts defined in DI container as services! :tada: