dev-master
9999999-devExtension to run commands at hooks in test lifecycle
The Requires
by Adam Quaile
dev-feature/behat-tests
dev-feature/behat-testsExtension to run commands at hooks in test lifecycle
The Requires
by Adam Quaile
Extension to run commands at hooks in test lifecycle
This is a proof-of-concept - use with caution!, (*1)
Extension to run commands at hooks in test lifecycle, useful for cache clearing, database setup, teardown, etc..., (*2)
Require package adamquaile/behat-command-runner-extension
via composer:, (*3)
composer require --dev "adamquaile/behat-command-runner-extension *@dev"
Add configuration to your behat.yml
. This example shows the full configuration options., (*4)
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"
This example runs phantomjs
for our javascript behat tests, and also creates
and recreates a test database for each feature., (*5)
For speed, the database is copied back into place after the first run during setup rather than using doctrine each time., (*6)
For more isolation, you could do this copying on beforeScenario
rather than beforeFeature
., (*7)
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
Extension to run commands at hooks in test lifecycle
Extension to run commands at hooks in test lifecycle