2017 © Pedro Peláez
 

library behat-no-extension

The ultimate Behat extension

image

zalas/behat-no-extension

The ultimate Behat extension

  • Tuesday, July 31, 2018
  • by jakzal
  • Repository
  • 2 Watchers
  • 30 Stars
  • 60,822 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 3 Forks
  • 0 Open issues
  • 9 Versions
  • 10 % Grown

The README.md

Behat No Extension

Scrutinizer Code Quality Build Status Build Status, (*1)

This Behat extension makes it possible to extend Behat without having to write an extension yourself., (*2)

Installation

This extension requires:, (*3)

  • Behat ^3.0
  • PHP ^7.1

The easiest way to install it is to use Composer, (*4)

$ composer require --dev zalas/behat-no-extension

Next, activate the extension in your behat.yml:, (*5)

# behat.yml
default:
  extensions:
    Zalas\Behat\NoExtension: ~

Importing service definitions

Extension enables you to load service definitions and parameters from configuration files specified in the imports section:, (*6)

# behat.yml
default:
  extensions:
    Zalas\Behat\NoExtension:
      imports:
        - features/bootstrap/config/services.yml

These should simply be Symfony's service container configuration files:, (*7)

# features/bootstrap/config/services.yml
services:
  Acme\SimpleArgumentResolver:
    tags:
      - { name: context.argument_resolver }

parameters:
  acme.foo: boo!

Yaml, xml and php formats are currently supported., (*8)

Note that any classes you'd like to use should be autoloaded by composer. For the example above, autoload-dev or autoload should include the Acme\\ autoloader prefix., (*9)

Injecting services into contexts

Enable the argument resolver to take advantage of the built in support for service injection:, (*10)

# behat.yml
default:
  extensions:
    Zalas\Behat\NoExtension:
      argument_resolver: true
      imports:
        - features/bootstrap/config/services.yml

Assuming services you'd like to inject into contexts are defined in features/bootstrap/Acme, and they're autoloaded by composer, you can now start defining them in your configuration file:, (*11)

# features/bootstrap/config/services.yml
services:

    Acme\:
        resource: '../Acme'
        public: true
        autowire: true

The above example relies on autoworing, but you could also define each service explicitly., (*12)

An example composer autoloader configuration:, (*13)

{
    "autoload-dev": {
        "psr-4": {
            "Acme\\": "features/bootstrap/Acme"
        }
    }
}

Given there's a class Acme\Foo defined, it can now be injected into contexts:, (*14)

use Acme\Foo;
use Behat\Behat\Context\Context;

class FeatureContext implements Context
{
    private $foo;

    public function __construct(Foo $foo)
    {
        $this->foo = $foo;
    }
}

Defining parameters

Parameters defined in imported files are also available in behat.yml:, (*15)

# behat.yml
default:
  suites:
    search:
      contexts:
        - SearchContext:
            myFoo: '%acme.foo%'
  # ...

Furthermore, parameters can also be defined as part of extension's configuration directly in behat.yml:, (*16)

# behat.yml
default:
  extensions:
    Zalas\Behat\NoExtension:
      parameters:
        foo: bar
        baz:
          a: 1
          b: 'bazinga!'

Contributing

Please read the Contributing guide to learn about contributing to this project. Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms., (*17)

The Versions

25/05 2018

1.1.x-dev

1.1.9999999.9999999-dev https://github.com/jakzal/BehatNoExtension

The ultimate Behat extension

  Sources   Download

MIT

The Requires

 

The Development Requires

bdd extension behat dependency-injection service-container

25/05 2018

v1.1.1

1.1.1.0 https://github.com/jakzal/BehatNoExtension

The ultimate Behat extension

  Sources   Download

MIT

The Requires

 

The Development Requires

bdd extension behat dependency-injection service-container

09/11 2016

dev-feature/injecting-services-into-contexts

dev-feature/injecting-services-into-contexts https://github.com/jakzal/BehatNoExtension

The ultimate Behat extension

  Sources   Download

MIT

The Requires

 

The Development Requires

bdd extension behat dependency-injection service-container

09/03 2015

v1.1.0

1.1.0.0 https://github.com/jakzal/BehatNoExtension

The ultimate Behat extension

  Sources   Download

MIT

The Requires

 

The Development Requires

bdd extension behat dependency-injection service-container

03/02 2015

v1.0.0

1.0.0.0 https://github.com/jakzal/BehatNoExtension

The ultimate Behat extension

  Sources   Download

MIT

The Requires

 

The Development Requires

bdd extension behat dependency-injection service-container