A Behat extension to load HautelookAliceBundle fixtures.
You can use Composer to install the bundle to your project:
composer require theofidry/alice-bundle-extension
Then, in your behat config file behat.yml
, register the extension and declare the context:
# behat.yml
default:
suites:
default:
contexts:
- Fidry\AliceBundleExtension\Context\Doctrine\AliceORMContext
# or if you want to set the base path only for this context:
- Fidry\AliceBundleExtension\Context\Doctrine\AliceORMContext:
basePath: %paths.base%/tests/Features/fixtures/ORM (default value)
# ...
extensions:
Fidry\AliceBundleExtension\Extension:
fixtures_base_path: ~ # default to %paths.base%/features/fixtures
You have three contexts available:
Fidry\AliceBundleExtension\Context\Doctrine\AliceODMContext
Fidry\AliceBundleExtension\Context\Doctrine\AliceORMContext
Fidry\AliceBundleExtension\Context\Doctrine\AlicePHPCRContext
With the default fixtures basePath respectively at:
%paths.base%/tests/Features/fixtures/ODM
%paths.base%/tests/Features/fixtures/ORM
%paths.base%/tests/Features/fixtures/PHPCR
Assuming you have the same configuration as the Installation section, you can create the following fixture file:
# features/fixtures/ORM/dummy.yml
AppBundle\Entity\Dummy:
dummy_{1..10}:
name: <name()>
Then simply load your fixtures with the following step:
Given the fixtures file "dummy.yml" is loaded
Given the fixtures file "dummy.yml" is loaded with the persister "doctrine.orm.entity_manager"
Given the following fixtures files are loaded:
| fixtures1.yml |
| fixtures2.yml |
For each context, you have the following steps available:
@Given the database is empty
@Then I empty the database
@Given the fixtures "fixturesFile" are loaded
@Given the fixtures file "fixturesFile" is loaded
@Given the fixtures "fixturesFile" are loaded with the persister "persister_service_id"
@Given the fixtures file "fixturesFile" is loaded with the persister "persister_service_id"
@Given the following fixtures files are loaded:
| fixtures1.yml |
| fixtures2.yml |
@Given the following fixtures files are loaded with the persister "persister_service_id":
| fixtures1.yml |
| fixtures2.yml |
Loading a file can be done in three ways:
Type of path | Fixtures file path | Computed fixtures file path |
---|---|---|
Relative path | `"dummy.yml"` | `contextBasePath/dummy.yml`, ex: `%paths.base%/tests/Features/fixtures/ORM/dummy.yml` |
@Bundle path | `"@AppBundle/DataFixtures/ORM/dummy.yml"` | `src/AppBundle/DataFixtures/ORM/dummy.yml` (example) |
Absolute path | `/dummy.yml` | unchanged |
Paths can also be directories.
This library is developed by Théo FIDRY.