elbformat/ibexa-behat-bundle
A Behat bundle for Ibexa offering a fast, Symfony Kernel-based testing approach with partial database resets, strict behavioral wording, and support for page builder blocks.
Although there already is an official behat bundle for ibexa, this bundle has a completely different approach. It is optimized for faster execution by using the Symfony Kernel directly and only partially reset the database. Also, it has more strict wordings in a behavioural manner. Last but not least it also supports creating page builder blocks.
composer require elbformat/ibexa-behat-bundle
config/bundles.phpElbformat\SymfonyBehatBundle\ElbformatSymfonyBehatBundle::class => ['test' => true],
Elbformat\IbexaBehatBundle\ElbformatIbexaBehatBundle::class => ['test' => true],
default:
suites:
default:
contexts:
- Elbformat\IbexaBehatBundle\Context\AdminContext
- Elbformat\IbexaBehatBundle\Context\ContentContext
- Elbformat\IbexaBehatBundle\Context\LandingpageContext
- Elbformat\IbexaBehatBundle\Context\ObjectstateContext
- Elbformat\IbexaBehatBundle\Context\SolrContext
- Elbformat\IbexaBehatBundle\Context\TrashContext
config/services_behat.yaml toservices:
# Prevent random character in image urls for tests
Elbformat\IbexaBehatBundle\IO\TestFilePathNormalizer:
decorates: 'Ibexa\Core\IO\FilePathNormalizer\Flysystem'
arguments: ['@.inner']
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 do:da:cr
bin/console -e test do:mi:mi -n
bin/console -e test ib:mi:mi -n
bin/console -e test ibexa:reindex
Then you can simply run the tests.
vendor/bin/behat
When you have internal, fixed content/location ids > 1000 you may want to change the minimum id for resetting the database.
To do this, you can simply add an enviromment variable BEHAT_CONTENT_MIN_ID=10000 to .env.behat
How can I help you explore Laravel packages today?