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
Wallogit.com
2017 © Pedro Peláez
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