All Projects → jakzal → Behatnoextension

jakzal / Behatnoextension

Licence: mit
This Behat extension makes it possible to extend Behat without having to write an extension yourself.

Projects that are alternatives of or similar to Behatnoextension

Symfony2extension
Symfony2 extension for Behat
Stars: ✭ 400 (+1076.47%)
Mutual labels:  symfony, behat
Symfonystarter
[DEPRECATED] Please use the new version here https://github.com/Monofony/Monofony
Stars: ✭ 77 (+126.47%)
Mutual labels:  symfony, behat
Bdd Experiment
An experiment on BDD in Symfony2 using Behat, Mink and Zombie.js
Stars: ✭ 12 (-64.71%)
Mutual labels:  symfony, behat
Crosscontainerextension
⚔️ [DEPRECATED] Makes possible to inject services and parameters from other containers.
Stars: ✭ 97 (+185.29%)
Mutual labels:  symfony, behat
Bicing Api
Get statistics and locations of bicycle stations through REST API
Stars: ✭ 149 (+338.24%)
Mutual labels:  symfony, behat
Php Ddd Example
🐘🎯 Hexagonal Architecture + DDD + CQRS in PHP using Symfony 5
Stars: ✭ 1,960 (+5664.71%)
Mutual labels:  symfony, behat
Symfony 3 Rest Api Example
Symfony 3 RESTful API Example
Stars: ✭ 90 (+164.71%)
Mutual labels:  symfony, behat
Symfonyextension
🎼 Extension integrating Behat with Symfony.
Stars: ✭ 376 (+1005.88%)
Mutual labels:  symfony, behat
Symfony Console Autocomplete
Shell autocompletion for Symfony Console based scripts
Stars: ✭ 465 (+1267.65%)
Mutual labels:  symfony, behat
Generator Symfonangular
Yeoman generator for full stack development with (PHP) Symfony and (Javascript) AngularJS application
Stars: ✭ 13 (-61.76%)
Mutual labels:  symfony
Ismaambrosigeneratorbundle
Generates Symfony2 documents, forms and CRUD for MongoDB documents
Stars: ✭ 27 (-20.59%)
Mutual labels:  symfony
Kubernetes Goat
Kubernetes Goat is "Vulnerable by Design" Kubernetes Cluster. Designed to be an intentionally vulnerable cluster environment to learn and practice Kubernetes security.
Stars: ✭ 868 (+2452.94%)
Mutual labels:  container
Routing
The Routing component maps an HTTP request to a set of configuration variables.
Stars: ✭ 7,080 (+20723.53%)
Mutual labels:  symfony
Ecommerce
A powerful and lightweight eCommerce platform using ReactJs, Graphql, PHP, and Mysql.
Stars: ✭ 28 (-17.65%)
Mutual labels:  symfony
Telegram Notifier
Provides Telegram integration for Symfony Notifier.
Stars: ✭ 30 (-11.76%)
Mutual labels:  symfony
Api Example
WIP: Just sample app with API
Stars: ✭ 12 (-64.71%)
Mutual labels:  symfony
Syliusmercanetbnpparibasplugin
BnpParibas Mercanet payment gateway for Sylius based applications.
Stars: ✭ 12 (-64.71%)
Mutual labels:  symfony
Piwik Bundle
Symfony Bundle with twig-function for the Matomo (fka Piwik) tracking code
Stars: ✭ 33 (-2.94%)
Mutual labels:  symfony
Behapi
Behat extension for those who want to write acceptances tests for apis
Stars: ✭ 29 (-14.71%)
Mutual labels:  behat
Symfony Quickstart
An empty Symfony3 project that provides lots of ready-to-use tools for quick & not-so-dirty development
Stars: ✭ 27 (-20.59%)
Mutual labels:  symfony

Behat No Extension

Scrutinizer Code Quality Build Status Build Status

This Behat extension makes it possible to extend Behat without having to write an extension yourself.

Installation

This extension requires:

  • Behat ^3.0
  • PHP ^7.1

The easiest way to install it is to use Composer

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

Next, activate the extension in your behat.yml:

# 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:

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

These should simply be Symfony's service container configuration files:

# 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.

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.

Injecting services into contexts

Enable the argument resolver to take advantage of the built in support for service injection:

# 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:

# 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.

An example composer autoloader configuration:

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

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

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:

# 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:

# 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].