brandonbest / php-unittest-sqlite
Limit the number of migrations/seeders run during unit tests.
v1.0.0
2020-09-01 23:44 UTC
Requires
- php: ^7.2.0
Requires (Dev)
- php: ^7.2.0
- orchestra/testbench: ^5.3
This package is auto-updated.
Last update: 2025-04-23 05:44:29 UTC
README
This package optimizes unit testing speed, especially for packages with a large number of migrations and/or seeders.
The package works by managing two copies of a sqlite database, base
and copy
. Migrations and seeders are run on copy
if base
does not exist.
Copy
is cloned into base
. Every unit test with RefreshDatabase
trait will delete copy
and clone base
into copy
.
Base
is deleted at the end of the unit test (you can keep Base
around with a simple configuration update).
Setup
Install
composer require --dev brandonbest/php-unittest-sqlite
PHP Unit
Add the following listener to phpunit.xml.
<listeners>
<listener class="BrandonBest\UnittestSqlite\DatabaseTestListener"/>
</listeners>
Commands
php artisan sqlite:delete
Deletes the base
file.
Future Plans
- Automatically detect new migrations and update the base sqlite