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

Testing Framework Laravel Package

typo3/testing-framework

The TYPO3 Testing Framework offers a complete toolset for testing TYPO3 extensions and core. It covers unit, functional, and acceptance tests, provides fixtures, a base TestCase, and Codeception helpers, and simplifies database-backed test setups.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy (build vs. adopt) for test infrastructure. The decision this package most directly informs is whether to hand-roll a TYPO3 test harness (core bootstrap, database fixtures, Extbase/Fluid rendering, TCA setup) or adopt the framework the TYPO3 core team itself uses. Unless you have unusual constraints, adopting wins on maintenance cost alone.
  • Release gating and "definition of done." Adopting it lets you codify what "tested" means for an extension: unit coverage of domain logic, functional coverage of controllers, persistence, and rendering. That is a policy decision a PM owns, not just an engineering one.
  • Version support policy and compatibility matrix. Because the framework tracks TYPO3 core versions, your CI matrix against it becomes the artifact that backs public claims like "supports TYPO3 v12 LTS and v13." This directly shapes marketing copy, support commitments, and deprecation timelines.
  • Upgrade roadmap sequencing. TYPO3 major upgrades are the largest recurring cost in TYPO3 product ownership. A functional suite built on this framework is the cheapest early-warning system for breaking changes; its state informs when to schedule an upgrade sprint versus defer it.
  • Refactor and migration safety. When deciding to modernize Extbase code, migrate to Doctrine DBAL, or restructure TCA, the existence of a functional test baseline converts a high-risk bet into a reversible one.
  • Where it does not apply. Despite the brief framing, this is not a Laravel or general PHP package. It bakes in TYPO3 core bootstrapping and conventions. For Laravel, Symfony, or framework-agnostic PHP, the equivalent decisions belong to PHPUnit/Pest or the framework's own testing layer — this package should be excluded from those evaluations entirely.

When to Consider This Package

Adopt when:

  • You maintain a TYPO3 extension, distribution, or site package and need tests that boot a real TYPO3 core instance rather than mocking it.
  • You need functional coverage of database-backed behavior, Extbase controllers, Fluid templates, or TCA-dependent logic — areas where pure unit tests give false confidence.
  • You support more than one TYPO3 LTS release and want a single suite gating all of them.
  • You contribute to TYPO3 core, or maintain extensions you intend to publish to TER, where alignment with core testing conventions lowers review friction.
  • Your CI can afford containers, a database service, and multi-minute functional test runs.

Look elsewhere when:

  • The stack is not TYPO3. There is no meaningful portability here; the value is entirely in the TYPO3 bootstrap.
  • Your testing need is unit-only. Plain PHPUnit or Pest is lighter, faster, and has a far larger hiring pool.
  • You need end-to-end browser coverage. This is not a browser automation tool; pair it with Playwright or Cypress rather than expecting acceptance coverage from it.
  • Licensing is constrained. GPL-2.0 is fine for a dev-only dependency in most organizations, but if you ship a proprietary product with unusual linking or redistribution terms, route it through legal before it lands in composer.json. Do not assume "it's just a dev dependency" is a settled answer.
  • You have no CI investment. Functional tests without pipeline automation are a liability; they will be skipped locally and rot.

One caveat on signals: 67 GitHub stars materially understates adoption. This is a first-party TYPO3 package pulled in transitively by a large share of the ecosystem, so star count is the wrong adoption metric here — check Packagist install numbers and whether it appears in the dev dependencies of extensions you already trust. Conversely, the low opportunity score is a fair read: there is no product to build here, only infrastructure to consume.

How to Pitch It (Stakeholders)

For executives: This is free, open-source test infrastructure maintained by the same team that maintains TYPO3 itself, and it is what the core is tested with. The business case is risk and cost reduction on TYPO3 upgrades — the single largest recurring engineering expense in a TYPO3 product. It converts upgrade work from "hope nothing breaks" into a bounded, scheduled task, and it lets us make version-support commitments to customers that we can actually substantiate. There is no license fee and no vendor negotiation. The two risks to flag are the GPL-2.0 license (a legal review item, not an engineering one) and the fact that we are dependent on community maintenance cadence rather than a commercial SLA — mitigated by the fact that the maintainer is the core team and the package is actively released.

For engineering: Do not build a bespoke TYPO3 bootstrap. This gives you UnitTestCase and FunctionalTestCase with proper core bootstrapping, database fixture handling, and frontend rendering support, aligned with how core tests are written — which means upstream examples and documentation actually apply to us. Pin the version to your TYPO3 minor, run it in CI with a database service, and treat the version matrix as the source of truth for our compatibility claims. Budget for functional tests being slow; scope them to the integration seams where bugs actually occur rather than trying to cover everything. Where we only need pure-PHP unit coverage, use plain PHPUnit — pulling the full core bootstrap in for logic-only tests is unnecessary latency.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource