da-eto-ya/behat-spawner-extension

Spawns processes when Behat starts

v1.0.1 2014-04-24 08:01 UTC

This package is not auto-updated.

Last update: 2024-04-13 13:46:46 UTC


README

Latest Stable Version License Build Status Scrutinizer Code Quality Total Downloads

Overview

Simple extension for spawn processes before you run your Behat test suite.

For example, it is useful when you run testing server instance (local php server, Selenium, PhantomJS, etc) on multiple environments (developer's machine, CI-server, etc) without need for bash/cmd script to run testing suite.

Installation

Define dependencies in your composer.json:

{
    "require": {
        ...
        "da-eto-ya/behat-spawner-extension": "1.1.*@dev"
    }
}

Install/update your vendors:

$ curl http://getcomposer.org/installer | php
$ php composer.phar install

Or if you have composer installed global-wise on machine, you can use it:

$ composer install

Configure

Activate and configure extension in your behat.yml:

# behat.yml
default:
    # ...
    extensions:
        Behat\SpawnerExtension\ServiceContainer\SpawnerExtension:
            commands:           # array-formatted command list
                - [php, -S, localhost:8880, -t, web, web/index.php]
                - ['./bin/phantomjs', '--webdriver=8643']
            work_dir: '.'       # by default, use current directory
            win_prefix: ''      # prefix commands on Windows (default: empty)
            nix_prefix: 'exec'  # prefix commands on *-nix (default: 'exec')
            sleep: 0            # sleep after spawn (in milliseconds, default 0)

All settings are optional. commands option if general for use this extension.

Current, commands should be declared as arrays of strings (program name and arguments) for proper escaping on different operating systems.

Also, for heterogeneous setups, you can specify win_prefix and nix_prefix, but do it with care. You can specify work_dir as working directory for all commands.

And you can specify sleep option in milliseconds for pause between spawn processes and start process features (for example, if you should wait for spawned server to start). Pause will be only if you declare some commands, obviously.

Changelog

v1.0.1

  • Fix bugs with configuration on Windows (default work_dir equals '.' now)

v1.0.0

  • Initial version

TODO

  • Allow simple string command definition
  • Add commands configuration validation
  • Add checks for process pipeline (stop only after spawn)

Contribution

It is more than welcome as always!

Feel free to contact me and post issues/bugs/enhancements through the issue system.