macpaw/behat-doctrine-fixtures
Behat extension for Doctrine fixtures that simplifies loading and purging test data in Behat scenarios. Integrates Doctrine ORM fixtures with Behat contexts so acceptance tests can seed databases reliably and keep suites isolated.
DataFixtures loader model — which is good if your fixtures already live there, and a constraint if you're standardized on Laravel factories or seeders.doctrine/orm 3.x. Adopting it is no longer a standalone test-tooling decision — it implicitly ratifies (or forces) an ORM 2→3 migration, and conversely, any team still on ORM 2.x is pinned to v2.1.0 or a fork. Worth naming explicitly in the roadmap rather than discovering it at install time.Consider it when all of the following hold:
doctrine/data-fixtures classes, and you want them loaded/isolated per scenario without writing a custom context.doctrine/dbal floors), and a low-traffic, single-org repository is acceptable for test-only code (blast radius is limited to CI).Look elsewhere when:
RefreshDatabase, model factories, and seeders. Behat is uncommon, and this package adds a Doctrine dependency you almost certainly don't want in a Laravel app. behat/laravel-style extensions or plain Pest feature tests are the idiomatic path.For executives: This is a small, free, MIT-licensed helper that lets our acceptance tests (the plain-English specs QA and product can read) load consistent test data automatically. It doesn't ship to customers and can't affect production. The newest release is a maintenance bump that moves it onto Doctrine ORM 3 — meaning it only works if we're already on, or moving to, that version; it isn't a feature we'd adopt on its own. The real cost isn't the license, it's ownership: adoption is still negligible and the release is mislabeled (a "3.0" PR shipped as 2.2.0), so our engineers would maintain it. Recommendation: treat it as a reference implementation to fork or copy, not a dependency to lean on, and only pursue it if BDD acceptance testing is already on the roadmap and ORM 3 is our direction.
For engineering: It's a Behat context that wires Doctrine data fixtures into scenario setup. v2.2.0 upgrades doctrine/orm to 3.x — a breaking change in practice even though it shipped as a minor, so treat the version constraint as hard: ORM 2.x users stay on v2.1.0 or vendor. If we're on Symfony/Doctrine 3 and already writing doctrine/data-fixtures classes, this saves a day or two of context-writing. If we're on Laravel, it's a mismatch — our factories plus RefreshDatabase are the better answer, and adopting Doctrine fixtures would fight the framework. Either way, budget for vendoring it: pin the commit, read the whole thing (it's small), and add it to our internal test-tooling ownership list. Note the release also adds a second contributor, which marginally improves bus factor but doesn't change the underlying assessment.
How can I help you explore Laravel packages today?