behat-extension / doctrine-data-fixtures-extension
Doctrine data fixtures extension for Behat
Installs: 544 500
Dependents: 1
Suggesters: 0
Security: 0
Stars: 20
Watchers: 3
Forks: 35
Open Issues: 2
Requires
- php: ^7.1
- behat/behat: ^3.0
- behat/symfony2-extension: ^2.0
- doctrine/data-fixtures: ^1.0
- doctrine/orm: ^2.6
- symfony/dependency-injection: ^3.4|^4.0
Requires (Dev)
- adamquaile/behat-command-runner-extension: ^0.1.1
- doctrine/doctrine-bundle: ^1.8
- doctrine/doctrine-fixtures-bundle: ^3.0
- symfony/process: ^3.4|^4.0
- symfony/var-dumper: ^3.4|^4.0
Suggests
- doctrine/migrations: Uses DBAL to load versioned database schema and migration classes
- symfony/process: For backup support on pgsql or mysql platforms
This package is auto-updated.
Last update: 2024-11-28 19:53:56 UTC
README
The extension increases feature test isolation by reloading ORM data fixtures between scenarios and features.
Installation
composer require "behat-extension/doctrine-data-fixtures-extension"
Configuration
Activate extension in your behat.yml and define any fixtures to be loaded:
# behat.yml default: # ... extensions: BehatExtension\DoctrineDataFixturesExtension\Extension: lifetime: 'feature' directories: ~ fixtures: ~
When lifetime is set to "feature" (or unspecified), data fixtures are reloaded between feature files. Alternately, when lifetime is set to "scenario", data fixtures are reloaded between scenarios (i.e., increased test isolation at the expense of increased run time).
When fixtures is set, the extension will load the specified fixture classes.
This must contain a list of fully qualified class names. Classes MUST not have any constructor arguments (or at least optional).
If the interface Symfony\Component\DependencyInjection\ContainerAwareInterface
is implemented, the container is set to the fixture loader.
When directories is set, the extension will load the data fixtures globed from the respective directories.
Classes MUST not have any constructor arguments (or at least optional).
If the interface Symfony\Component\DependencyInjection\ContainerAwareInterface
is implemented, the container is set to the fixture loader.
This extension will also load every fixtures declared as services and tagged with doctrine.fixture.orm
.
# behat.yml default: # ... extensions: BehatExtension\DoctrineDataFixturesExtension\Extension: lifetime: 'feature' directories: - '/project/src/AcmeAnalytics/Tests/DataFixtures/ORM' fixtures: - 'Acme\StoreBundle\DataFixture\ORM\Categories' - 'Acme\StoreBundle\DataFixture\ORM\Apps' - 'Acme\VendorBundle\DataFixture\ORM\Vendors'
Backup System
To speed up the tests, a backup system is available. The whole database will be set in cache and reloaded when needed. You should periodically clear the cache as it does not detect changes to the data fixture contents because the hash is based on the collection of data fixture class names.
This feature is only available for SQLite, MySQL and PostgreSQL.
- For MySQL,
mysql
andmysqldump
must be available. - For PostgreSQL,
pg_restore
andpg_dump
must be available.
It is enabled by default. To disable it, you just have to set use_backup: false
in the extension configuration:
# behat.yml default: # ... extensions: BehatExtension\DoctrineDataFixturesExtension\Extension: lifetime: 'feature' use_backup: false
Source
Github: https://github.com/BehatExtension/DoctrineDataFixturesExtension
Forked from https://github.com/vipsoft/DoctrineDataFixturesExtension
Copyright
- Copyright (c) 2012 Anthon Pang.
- Copyright (c) 2016-2018 Florent Morselli.
See LICENSE for details.
Contributors
- Anthon Pang (robocoder)
- Florent Morselli (Spomky)
- Others contributors