Downloads
Stars
Version
Laravel Test Trap will help you trap any slow tests or when a SQL query is slow or runs multiple times. Laravel Test Trap is inspired by phpunit-speedtrap and is tailored to be used in Laravel applications.
You can install the package via composer:
composer require --dev hughsaffar/laravel-test-trap
You can publish the config file with:
php artisan vendor:publish --provider="TestTrap\TestTrapServiceProvider" --tag="config"
This is the contents of the published config file:
return [
'ignore_migrations_queries' => env('TEST_TRAP_IGNORE_MIGRATIONS_QUERIES', true),
'environment_name' => env('TEST_TRAP_ENVIRONMENT', 'testing'),
];
ignore_migrations_queries
to true
, Laravel Test Trap will not log any related queries to the migrations. This is useful if you are using RefreshDatabase
trait on your tests. However, if you are running migration manually for your test database you need to set the value to false
;testing
environment. If your application has a different name for testing environment you may override it by changing environment_name
value.Laravel Test Trap comes with an PHPUnit extension class that you need to add to your phpunit.xml
.
<extensions>
<extension class="TestTrap\TestTrapExtension">
<arguments>
<array>
<element key="speed">
<double>500</double>
</element>
<element key="queryCalled">
<integer>10</integer>
</element>
<element key="querySpeed">
<double>1000</double>
</element>
</array>
</arguments>
</extension>
</extensions>
In this example we ask Test Trap to report any tests that:
If you do not want Laravel Test Trap to always run with your tests, you can simply disable it by adding an environment variable to your phpunit.xml
file:
<php>
...
<server name="TEST_TRAP_DISABLE" value="true"/>
...
</php>
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.