Adds Contexts and Helper to easily set-up behat tests in your sulu application. It makes use of the symfony-behat-bundle.
- Add the bundle via composer
composer require elbformat/sulu-behat-bundle
- Activate bundles in
config/bundles.php
Elbformat\SymfonyBehatBundle\ElbformatSymfonyBehatBundle::class => ['test' => true],
Elbformat\SuluBehatBundle\ElbformatSuluBehatBundle::class => ['test' => true],
- Configure behat Extensions
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.
- SuluArticleContext requires SuluArticleBundle
- SuluFormContext requires SuluFormBundle
Possible enhancements for the next release could be
- SuluCommunityContext for SuluCommunityBundle
- More examples with more content-types