adamquaile / behat-command-runner-extension
Extension to run commands at hooks in test lifecycle
Installs: 176 356
Dependents: 4
Suggesters: 0
Security: 0
Stars: 14
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- behat/behat: ~3.0
- symfony/process: *
This package is auto-updated.
Last update: 2024-11-09 22:43:06 UTC
README
This is a proof-of-concept - use with caution!
Extension to run commands at hooks in test lifecycle, useful for cache clearing, database setup, teardown, etc...
Installation
Require package adamquaile/behat-command-runner-extension
via composer:
composer require --dev "adamquaile/behat-command-runner-extension *@dev"
Add configuration to your behat.yml
. This example shows the full configuration options.
default:
extensions:
AdamQuaile\Behat\CommandRunnerExtension:
beforeSuite:
- echo "beforeSuite"
- { command: 'ping example.com', background: true }
afterSuite:
- echo "afterSuite"
beforeFeature:
- echo "beforeFeature"
- { command: 'ping example.com', background: true }
afterFeature:
- echo "afterFeature"
beforeScenario:
- echo "beforeScenario"
- { command: 'ping example.com', background: true }
afterScenario:
- echo "afterScenario"
A symfony2 example
This example runs phantomjs
for our javascript behat tests, and also creates
and recreates a test database for each feature.
For speed, the database is copied back into place after the first run during setup rather than using doctrine each time.
For more isolation, you could do this copying on beforeScenario
rather than beforeFeature
.
default:
extensions:
AdamQuaile\Behat\CommandRunnerExtension:
beforeSuite:
- rm app/var/test.db
- php app/console --env=test doctrine:database:drop --force
- php app/console --env=test doctrine:database:create --force
- php app/console --env=test doctrine:schema:update --force
- cp app/var/test.db app/var/test.initial.db
- { command: 'phantomjs-1.9.7-linux-x86_64/bin/phantomjs" --webdriver=4444 >"phantomjs.log"', background: true }
beforeFeature:
- cp app/var/test.initial.db app/var/test.db