Qu’est-ce que Testbench Workbench
Orchestra Testbench est conçu pour les tests ; en combinant Workbench, vous pouvez créer une petite application Laravel à l’intérieur du dépôt de votre package et l’exécuter localement. C’est utile en complément des tests écrits avecpackage-testing, pour vérifier l’interface, tester le routing et faire tourner l’application avec des seeders.
Installation
Créer Workbench
- Crée la structure du répertoire
workbench/. - Ajoute le namespace Workbench à
autoload-devducomposer.json. - Ajoute les commandes de build aux
scriptsducomposer.json.
workbench:install met en place d’un seul coup le répertoire workbench/, l’autoload-dev et les scripts associés.composer.json.
Définir l’environnement de développement avec testbench.yaml
Le comportement de Workbench se pilote viatestbench.yaml à la racine.
| Clé | Description |
|---|---|
providers | Liste des service providers chargés dans l’environnement Workbench |
migrations | Répertoires de migrations à exécuter |
workbench.start | URL par défaut au démarrage de composer serve |
workbench.discovers | Contrôle la découverte automatique des packages Laravel |
workbench.build | Liste des commandes à exécuter lors du build |
testbench.yaml.
Structure du répertoire workbench
workbench
app
Http
Models
Providers
bootstrap
config
database
factories
migrations
seeders
public
resources
routes
storage
Principales fonctionnalités offertes par Workbench
WorkbenchServiceProvider
Créez un service provider dédié à Workbench pour effectuer les enregistrements de démonstration.Routes et contrôleurs
Vous pouvez placer des routes de vérification dansworkbench/routes/web.php ou workbench/routes/api.php.
Migrations et Seeders
workbench/database/migrations et workbench/database/seeders permettent de valider avec une structure de données proche de la production.
Démarrage du service et vérification en CLI
Vous pouvez exécuter des commandes Artisan viavendor/bin/testbench.
Tester avec le trait WithWorkbench
Grâce au traitWithWorkbench, la configuration de testbench.yaml s’applique aussi automatiquement aux tests.
Articulation avec les tests
Il est plus facile de séparer les rôles : Workbench sert d’« application de démonstration et de vérification manuelle », tandis que les tests Testbench prennent en charge la « vérification automatique ».- Automatisé :
tests/pour prévenir les régressions. - Manuel :
workbench/pour valider écrans, parcours et comportement d’intégration.
Dépannage
Workbench ne se construit pas
Workbench ne se construit pas
Vérifiez la syntaxe de
testbench.yaml et la configuration des providers. Une erreur d’indentation YAML est souvent en cause.Les routes ne sont pas chargées
Les routes ne sont pas chargées
Vérifiez le chemin du fichier de routes et l’enregistrement dans WorkbenchServiceProvider. Assurez-vous que
discovers.web est bien true dans testbench.yaml.Erreur de base de données
Erreur de base de données
Vérifiez que le chemin des migrations est correct. Avec SQLite, vérifiez que l’étape de build
create-sqlite-db est bien présente.Pages associées
Tester des packages Laravel avec Orchestra Testbench
Découvrez d’abord comment poser les fondations de tests de package.
Gestion de la compatibilité de versions de package
Passez en revue la table de correspondance Laravel/Testbench et la stratégie de matrice CI.