Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Symfony Bundle Testing Laravel Package

mekras/symfony-bundle-testing

Testing utilities for Symfony bundles: helpers for booting test kernels, configuring services, and writing functional and integration tests around your bundle code. Simplifies PHPUnit setup so you can focus on assertions.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Test infrastructure modernization roadmap: 0.3.0 introduces TestContainerBuilder as the single, fluent entry point for configuring Symfony test containers (loading extensions, registering bundles, asserting definitions, controlling locatability and visibility). This gives us a clear target API for standardizing how our teams write integration tests, replacing ad-hoc calls scattered across base test cases.
  • Migration sequencing and support-window planning: Six BaseSymfonyIntegrationTestCase methods are now formally deprecated (loadExtension(), registerBundle(), expectServiceExists(), addToLocator(), getFromLocator(), and the $public argument of createContainer()). Each has a named replacement on the builder, so we can size a mechanical, low-risk migration and decide whether to absorb it in one sprint or spread it across the next refactor cycle.
  • Breaking-change risk triage: createContainer() and createContainerFromFile() now return TestContainerBuilder instead of their prior return type. Code that chains off the return value or type-hints against the old contract is the primary audit surface. This is the one item that can turn a routine bump into a support incident, so it should gate the upgrade decision.
  • Build vs. buy / dependency posture: We continue to lean on this package rather than maintaining in-house Symfony container test harnesses; a deprecation cycle with explicit 1:1 replacements is evidence of an actively maintained dependency with a coherent API direction.
  • Use cases unlocked: Cleaner fixture setup for integration tests asserting service wiring, bundle registration correctness, and service-locator behavior — the sort of coverage that de-risks container configuration changes before they reach production.

When to Consider This Package

Adopt / upgrade when:

  • We maintain Symfony-style integration tests that boot a container and assert service definitions, bundle registration, or locator behavior inside a Laravel/PHP codebase.
  • We want a supported, fluent builder rather than hand-rolled base-class helpers, and we are willing to migrate deprecated calls now while replacements are documented.
  • We can audit for the changed return types of createContainer() / createContainerFromFile() and confirm no caller depends on the previous return shape or chains old-style calls onto them.

Defer or look elsewhere when:

  • The codebase relies heavily on the deprecated base-class methods and no one owns a migration slot; upgrading widens the surface of deprecated calls without immediate benefit.
  • We only need Laravel's native testing facilities — HTTP, database, and container-binding assertions — and never touch Symfony container internals; the added abstraction cost outweighs the gain.
  • We require a stable API with no deprecation churn in the near term; 0.x versioning means further breaking changes should be assumed, even if this release is migration-friendly.
  • Callers depend on return-type contracts we cannot easily change (third-party test utilities, shared internal packages); pin the current version and revisit once the builder API settles.

How to Pitch It (Stakeholders)

For executives: A minor dependency release that consolidates our integration-test setup into one well-defined builder class. It is a hygiene upgrade, not a product feature: the value is lower maintenance cost and fewer bespoke test helpers. The risk is contained but non-zero — two container-creation methods changed their return type, and six older methods are deprecated. Recommendation is to schedule the bump with a short audit and migration ticket rather than take it as a blind patch.

For engineering: 0.3.0 adds TestContainerBuilder and moves the canonical way to load extensions, register bundles, assert definitions exist, mark services locatable, and set public visibility onto it. Every deprecated method maps 1:1 to a builder method, so migration is mostly search-and-replace. The action item is verifying nothing depends on the old return values of createContainer() and createContainerFromFile() — those now hand back a TestContainerBuilder, which is actually convenient for chaining but is a contract change. Deprecated methods still work for now; treat them as a burn-down list, and standardize new tests on the builder immediately so the deprecated path stops growing.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels