brandonbest / php-unittest-sqlite
Limit the number of migrations/seeders run during unit tests.
Installs: 1 028
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/brandonbest/php-unittest-sqlite
Requires
- php: ^7.2.0
Requires (Dev)
- php: ^7.2.0
- orchestra/testbench: ^5.3
This package is auto-updated.
Last update: 2025-11-23 06:55:22 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