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 For Laravel Laravel Package

roundly-consulting/testing-for-laravel

A Laravel testing package that provides practical helpers and assertions to streamline feature and unit tests. It reduces boilerplate and makes it easier to write clear, reliable tests for Laravel applications, from HTTP interactions to application behavior.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for package scaffolding and test harnesses. This is developer-facing tooling: a PackageTestCase base class that lets a Laravel package's own test suite optionally migrate once and reuse the schema (keepsMigratedSchema()), driven by migrationSources(). It informs the decision to standardize internal packages on a shared test case rather than hand-rolling per-repo bootstrap code.
  • CI reliability and engineering velocity, not end-user features. The 1.6.1 fix removes a spurious no such table: migrations failure that hit every database test in suites that declared no migration sources. That is a false-negative class of failure — it burns triage time and erodes trust in red builds. Relevant to any roadmap item gated on "green CI" or test-suite runtime budgets.
  • Test-suite performance strategy. Schema snapshotting is a speed lever for large package suites. Knowing the feature degrades safely (falls back to drop-per-test when there is nothing to migrate) matters when deciding whether to enable it broadly across repositories.
  • Use cases: Laravel package authors maintaining multiple packages; teams running matrix builds across DB engines (the note explicitly calls out behavior "on every engine," implying SQLite/MySQL/Postgres coverage); monorepos where test bootstrap consistency is worth centralizing.
  • Non-decision: this does not support product feature, pricing, or end-user roadmap calls. Treat it as platform/DX hygiene.

When to Consider This Package

Adopt when:

  • You maintain one or more distributable Laravel/PHP packages (not just an application) and want a consistent test base class instead of duplicating TestCase boilerplate per repo.
  • Your suites are DB-heavy and slow enough that schema snapshotting is a measurable win — i.e., you benefit from keepsMigratedSchema() existing at all.
  • You run cross-engine CI matrices and need predictable, engine-agnostic reset semantics.
  • You want opt-in behavior: the 1.6.1 change confirms the defaults are conservative — empty migrationSources() means "nothing migrated, nothing kept," and hand-built fixture tables are still dropped between tests. Safe-by-default is exactly what you want before rolling a harness out fleet-wide.

Look elsewhere or wait when:

  • You are building an application, not a package — a standard Laravel/Testbench setup covers you and this adds a layer.
  • Your tests deliberately build schema by hand and rely on persistence across tests. The documented contract is that such tables are gone before the next test; if your suite assumes otherwise, this harness fights you.
  • You need guaranteed stability in test infrastructure and your team cannot absorb a patch-level fix landing in a test-only path — though note 1.6.1 is a fix, not a behavior removal, for the empty-sources case.
  • You require documented migration paths between minor versions; this note is a single bullet with no deprecations or breaking changes signaled.

Verdict on 1.6.1: patch-level, non-breaking, correctness-only. It fixes a hard failure and tightens a snapshot edge case (no migrations table after migrating → snapshot keeps nothing). No new capability, no API removal. It is a reason to stay on the package, not a reason to adopt or re-adopt.

How to Pitch It (Stakeholders)

To executives: This is internal developer tooling for our Laravel packages, and the latest release is a small reliability fix. It removes a failure mode where an entire database test suite would go red for a reason unrelated to the code under test. Net effect: less engineer time lost to triaging phantom CI failures, and a test harness whose safe default is "when there's nothing to set up, don't pretend otherwise." No customer-facing change, no cost, no migration work.

To engineering: Version 1.6.1 fixes PackageTestCase::keepsMigratedSchema() failing all DB tests with no such table: migrations when migrationSources() is empty. Behavior now: nothing migrated → nothing kept → the test case stays on drop-per-test reset, and manually built fixture tables are still cleared between tests on every engine. The schema snapshot also no longer retains anything when no migrations table exists post-migration. No breaking changes, no deprecations, no action required beyond a routine patch bump. If your suite was suppressing or skipping DB tests to dodge this error, you can re-enable them.

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.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel