Cos’è Testbench Workbench
Orchestra Testbench è pensato per i test, ma combinandolo con Workbench puoi mantenere una piccola app Laravel dentro il repository del pacchetto ed eseguirla in locale. Serve a completare i test creati inpackage-testing quando vuoi verificare l’UI, la raggiungibilità delle rotte o eseguire verifiche con dati seeded.
Setup
1
Installare Testbench
2
Creare il Workbench
- crea la struttura di directory
workbench/ - aggiunge il namespace Workbench a
autoload-devdicomposer.json - aggiunge gli script di build a
scriptsdicomposer.json
3
Build e avvio
workbench:install prepara workbench/, autoload-dev e gli script correlati in un colpo solo.composer.json conterrà i seguenti script.
Definire l’ambiente di sviluppo con testbench.yaml
Il comportamento di Workbench si gestisce contestbench.yaml nella root.
Anche le variabili d’ambiente si gestiscono in
testbench.yaml.
Struttura della directory workbench
workbench
app
Http
Models
Providers
bootstrap
config
database
factories
migrations
seeders
public
resources
routes
storage
Principali funzionalità offerte da Workbench
WorkbenchServiceProvider
Crea un service provider dedicato a Workbench per la registrazione dei componenti demo.Rotte e controller
Inworkbench/routes/web.php o workbench/routes/api.php puoi mettere rotte di verifica.
Migrazioni e Seeder
Usandoworkbench/database/migrations e workbench/database/seeders puoi verificare con una struttura dati simile alla produzione.
Avvio del server e verifica CLI
Puoi eseguire comandi Artisan tramitevendor/bin/testbench.
Test con il trait WithWorkbench
Il traitWithWorkbench applica la configurazione di testbench.yaml anche ai test automatici.
Integrazione con i test
Ti consigliamo questa divisione: Workbench è “l’app per verifiche manuali e demo”, il codice di test di Testbench è “la verifica automatica”.- Automazione: previeni regressioni con
tests/ - Verifica manuale: controlla UI, percorsi e comportamento integrato con
workbench/
Troubleshooting
Workbench non compila
Workbench non compila
Controlla la sintassi di
testbench.yaml e la configurazione dei provider. Spesso il problema è un errore di indentazione YAML.Le rotte non vengono caricate
Le rotte non vengono caricate
Controlla il path del file delle rotte e la registrazione in WorkbenchServiceProvider. Verifica che
discovers.web in testbench.yaml sia true.Errori di database
Errori di database
Controlla che il path delle migrazioni sia corretto. Se usi SQLite verifica che sia presente lo step di build
create-sqlite-db.Pagine correlate
Testare pacchetti Laravel con Orchestra Testbench
Consulta prima come costruire l’infrastruttura di test del pacchetto.
Gestire la compatibilità tra versioni dei pacchetti
Rivedi la tabella di compatibilità Laravel/Testbench e l’operatività della matrix CI.