behat-steps
behat-steps copied to clipboard
A collection of Behat step definitions for Drupal
A collection of Behat steps for Drupal
Installation
composer require --dev drevops/behat-steps:^2
Usage
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.
Exceptions
\Exceptionis thrown for all assertions.\RuntimeExceptionis thrown for any unfulfilled requirements within a step.
Available steps
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.
Skipping before scenario hooks
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.
Development
Local environment setup
- 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 upahoy build- Access built site at http://behat-steps.docker.amazee.io/
Use ahoy --help to see the list of available commands.
Apple Silicon adjustments
cp docker-compose.override.default.yml docker-compose.override.yml
Running tests
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
Debugging tests
ahoy debug- Set breakpoint
- Run tests with
ahoy test-bdd- your IDE will pickup an incoming debug connection
Updating fixture site
- Build the fixture site and make the required changes
ahoy drush cex -yahoy update-fixturesto copy configuration changes from build directory to the fixtures directory
Repository created using https://getscaffold.dev/ project scaffold template