
Test più veloci su Laravel
Mirko Lorusso • 02 giugno 2023
Se lavori con il TDD saprai sicuramente che il tempo di esecuzione dei test può crescere molto in fretta. Una buona suite di test su un progetto di medie dimensioni raggiunge facilmente un tempo di esecuzione di diversi minuti.
Sulle ultime versioni di Laravel puoi usare un paio di stratagemmi per ovviare al problema.
Resetta il database solo quando ne hai bisogno
Da Laravel 8 in avanti puoi sostituire il trait RefreshDatabase
con Illuminate\Foundation\Testing\LazilyRefreshDatabase
.
In questo modo il database verrà resettato e migrato solamente se il test precedente lo ha modificato.
Esegui i test in parallelo
Per default Laravel lancia i test sequenzialmente, ma se esistesse un modo per eseguirli in parallelo?
Puoi farlo utilizzando il package paratest
: dopo averlo installato dovrai solamente selezionare uno dei driver disponibili per la code coverage (PCOV, xDebug o PHPDBG) e lanciarlo come descritto nel README (se scegli xDebug, ricorda di attivarlo prima di avviare i test).
L'uso combinato di questi due tool arriva facilmente a dimezzare i tempi di esecuzione dei test su un progetto. E tu conosci altri metodi per velocizzare i test con Laravel? Scrivilo nei commenti :)