elbformat/sulu-behat-bundle
Adds Behat contexts and helpers for easily setting up tests in Sulu applications, built on symfony-behat-bundle. Configure website or admin context per profile, tag features into suites, and use ready-made contexts for pages, snippets, media, dates, and more.
Adds Contexts and Helper to easily set-up behat tests in your sulu application. It makes use of the symfony-behat-bundle.
composer require elbformat/sulu-behat-bundle
config/bundles.phpElbformat\SymfonyBehatBundle\ElbformatSymfonyBehatBundle::class => ['test' => true],
Elbformat\SuluBehatBundle\ElbformatSuluBehatBundle::class => ['test' => true],
Add the extension to your behat.yml. With the context parameter you can decide if the sulu kernel for this profile is
running in website or admin (default) context. It's recommended to use tags to sort features into suites.
Also make sure the symfony extension is enabled and configured.
NOTE: The FriendsOfBehat\SymfonyExtension must be placed before the SuluExtension.
You can then add Contexts as you like/need.
default:
suites:
default:
filters:
tags: '~@admin'
contexts:
- Elbformat\SymfonyBehatBundle\Context\CommandContext:
- Elbformat\SymfonyBehatBundle\Context\LoggingContext:
- Elbformat\SuluBehatBundle\Context\BrowserContext:
- Elbformat\SuluBehatBundle\Context\DateContext:
- Elbformat\SuluBehatBundle\Context\SuluPageContext:
- Elbformat\SuluBehatBundle\Context\SuluSnippetContext:
- Elbformat\SuluBehatBundle\Context\SuluMediaContext:
# Only enable, when you have the according bundle installed
#- Elbformat\SuluBehatBundle\Context\SuluArticleContext:
#- Elbformat\SuluBehatBundle\Context\SuluFormContext:
extensions:
FriendsOfBehat\SymfonyExtension: ~
Elbformat\SuluBehatBundle\SuluExtension:
context: website
admin:
suites:
default:
filters:
tags: '@admin'
extensions:
FriendsOfBehat\SymfonyExtension:
bootstrap: 'tests/bootstrap.php'
Elbformat\SuluBehatBundle\SuluExtension:
context: admin
Make sure you have a database configured for the test environment.
It's recommended to have an extra database configured for tests in .env.test, to not accidentally delete real contents.
After configuration you should initialise it once, before running any test against it.
bin/console -e test sulu:build prod
You can then run the tests in default oder admin profile.
vendor/bin/behat
vendor/bin/behat --profile admin
First you should take a look at the symfony examples. More sulu specific examples can be found in features/ folder.
There are contexts, that can ony be enabled when the according bundles are installed.
Possible enhancements for the next release could be
How can I help you explore Laravel packages today?