composer require --dev drevops/behat-steps:^2
Add required traits
to your FeatureContext.php
(example):
<?php
use Drupal\DrupalExtension\Context\DrupalContext;
use DrevOps\BehatSteps\ContentTrait;
/**
* Defines application features from the specific context.
*/
class FeatureContext extends DrupalContext {
use ContentTrait;
}
Modification of behat.yml
configuration is not required.
\Exception
is thrown for all assertions.\RuntimeException
is thrown for any unfulfilled requirements within a step.
Use behat -d l
to list all available step definitions.
There are also several pre- and post-scenario hooks that perform data alterations and cleanup.
Some traits provide beforeScenario
hook implementations. These can be disabled
by adding behat-steps-skip:METHOD_NAME
tag to your test.
For example, to skip beforeScenario
hook from JsTrait
, add
@behat-steps-skip:jsBeforeScenarioInit
tag to the feature.
- Install Docker, Pygmy, Ahoy and shut down local web services (Apache/Nginx, MAMP etc)
- Checkout project repository in one of the supported Docker directories.
pygmy up
ahoy build
- Access built site at http://behat-steps.docker.amazee.io/
Use ahoy --help
to see the list of available commands.
cp docker-compose.override.default.yml docker-compose.override.yml
The source code of traits is tested by running Behat tests in the same way they would be run in your project: traits are included into FeatureContext.php and then ran on the pre-configured fixture Drupal site using test features.
Run ahoy build
to setup a fixture Drupal site in the build
directory.
ahoy test-bdd # Run all tests
ahoy test-bdd path/to/file # Run all scenarios in specific feature file
ahoy test-bdd -- --tags=wip # Run all scenarios tagged with `@wip` tag
ahoy debug
- Set breakpoint
- Run tests with
ahoy test-bdd
- your IDE will pickup an incoming debug connection
- Build the fixture site and make the required changes
ahoy drush cex -y
ahoy update-fixtures
to copy configuration changes from build directory to the fixtures directory