phpunit/phpunit-story
phpunit/phpunit-story brings behavior-driven development to PHPUnit, letting you write given/when/then story scenarios as test cases. A small, legacy extension useful for BDD-style specs, though now largely superseded by modern tooling.
phpunit/phpunit-story is the archived story/BDD extension from the PHPUnit 3.x era (PHPUnit_Extensions_Story_*, Given/When/Then scenario DSL). If any suite still depends on it, that dependency is a hard blocker on PHP 7/8 and PHPUnit 8+ upgrades, and the migration ticket must be scoped and sequenced before the platform upgrade — not discovered mid-sprint.NOASSERTION license and no resolvable source repository is a compliance and supply-chain line item. This supports decisions on vendoring, license review gates, and whether "dev-dependency" is an acceptable risk exemption in policy.Adopt only under tightly bounded conditions:
NOASSERTION license for internal-only use, or the code is vendored with a documented provenance trail.Look elsewhere in essentially every other case:
NOASSERTION is a review blocker for redistributed or commercially licensed products. Do not let it into an SBOM without sign-off.Default recommendation: do not adopt; migrate off if present.
For executives (one paragraph): This is a legacy test-helper library from an older generation of PHPUnit, now archived with no maintainable upstream and an unclear license. It is not a strategic capability and not something we should build on. Its only real business relevance is as a potential hidden blocker in a PHP upgrade: if it's in our dependency tree, it will stall that upgrade. Treat it as a small, well-scoped technical-debt item — budget a migration, not an adoption — and expect the replacement to be modest, likely a short internal helper or a move to a maintained tool.
For engineering leadership: The Given/When/Then syntax it provides is a thin layer over ordinary test methods. Reproducing the ergonomics internally is days, not quarters. Do not let a team adopt it "temporarily"; temporary is how it ends up in the upgrade critical path three years later. Standardize on Pest, Behat, or plain descriptive test names, and add a CI check that fails on this package appearing in composer.json.
For legal/compliance: NOASSERTION means the license text could not be automatically identified — not that it is permissive. Require manual provenance review before any internal use, and block it outright for anything distributed to customers or embedded in a shipped artifact.
For QA/engineering managers: The underlying goal — business-readable acceptance criteria — is legitimate and worth funding. Just fund it through a tool that has a maintainer, a release cadence, and a documentation site. This package offers the vocabulary without the support, which is the worst combination for a practice you want non-engineers to depend on.
How can I help you explore Laravel packages today?