Laravel intègre dès l'installation une infrastructure de test de classe mondiale. Avec l'adoption massive de Pest PHP (surcouche élégante et concise à PHPUnit) et la commande native php artisan test, tester vos applications web et vos API devient une expérience fluide, productive et agréable.
Syntaxe expressive et minimaliste inspirée de Vitest/Jest, réduisant le boilerplate de 70% par rapport à PHPUnit.
Distinction claire : tests/Unit pour la logique pure et tests/Feature pour les flux HTTP complets avec BDD.
Fichier phpunit.xml configuré pour utiliser SQLite en mémoire (:memory:) pour une vitesse d'exécution foudroyante.
Support natif de la parallélisation multicœur avec php artisan test --parallel et profilage des tests lents.
Basculez entre les deux syntaxes pour comparer la concision et la lisibilité du code de test en Laravel.
it('returns a successful response', function () {
$response = $this->get('/');
$response->assertStatus(200);
});Pest PHP élimine la classe englobante, la méthode verbeuse et le $this-> pour aller droit au but avec it() et test().
phpunit.xml) Utilisez SQLite en mémoire pour exécuter des centaines de tests en quelques secondes sans base de données locale lourde.
<php>
<env name="APP_ENV" value="testing"/>
<env name="BCRYPT_ROUNDS" value="4"/>
<env name="CACHE_STORE" value="array"/>
<env name="DB_CONNECTION" value="sqlite"/>
<env name="DB_DATABASE" value=":memory:"/>
<env name="MAIL_MAILER" value="array"/>
<env name="QUEUE_CONNECTION" value="sync"/>
<env name="SESSION_DRIVER" value="array"/>
</php>Options puissantes pour cibler, déboguer et accélérer vos tests au quotidien.
# Lancer tous les tests en parallèle sur tous les cœurs CPU
php artisan test --parallel
# Exécuter uniquement un fichier de test spécifique
php artisan test tests/Feature/AuthTest.php
# Filtrer par nom de méthode ou description de test
php artisan test --filter=login
# S'arrêter dès la première erreur rencontrée (Fast Fail)
php artisan test --bail
# Afficher les 10 tests les plus lents à optimiser
php artisan test --profile