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.
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.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.Adopt when:
TestCase boilerplate per repo.keepsMigratedSchema() existing at all.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:
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.
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.
How can I help you explore Laravel packages today?