Aprende a crear un entorno de verificación cercano a una aplicación real, con rutas, migraciones y arranque de servicios, usando Orchestra Testbench Workbench.
Orchestra Testbench está pensado para tests, pero combinándolo con Workbench puedes crear una pequeña aplicación Laravel dentro del propio repositorio del paquete y ejecutarla en local.Se usa para complementar los tests que creaste en package-testing cuando quieres validar la UI, la respuesta de las rutas o hacer verificaciones con seeders.
Definir el entorno de desarrollo con testbench.yaml
El comportamiento del Workbench se gestiona en el testbench.yaml de la raíz.
testbench.yaml puede contener configuración específica del entorno, así que se recomienda añadirlo a .gitignore y no incluirlo en los commits. En su lugar, deja en el repositorio un testbench.yaml.example a modo de plantilla.
Usa workbench/database/migrations y workbench/database/seeders para validar con una estructura de datos cercana a la real.
use Illuminate\Database\Schema\Blueprint;use Illuminate\Support\Facades\Schema;Schema::create('widgets', function (Blueprint $table) { $table->id(); $table->string('name'); $table->timestamps();});
Genera datos de prueba con un Seeder.
<?phpnamespace Workbench\Database\Seeders;use Illuminate\Database\Seeder;use Workbench\Database\Factories\UserFactory;class DatabaseSeeder extends Seeder{ public function run(): void { UserFactory::new()->count(10)->create(); }}
# Limpiar y reconstruir por completocomposer clear && composer prepare && composer build# Comprobar el package discoveryvendor/bin/testbench package:discover --ansi# Comprobar la configuraciónvendor/bin/testbench about# Ver la lista de rutasvendor/bin/testbench route:list
El Workbench no compila
Revisa la sintaxis y la configuración de providers en testbench.yaml. Un error de indentación de YAML puede ser la causa.
No se cargan las rutas
Comprueba la ruta del archivo y su registro en el WorkbenchServiceProvider. Verifica también que discovers.web esté en true en testbench.yaml.
Aparecen errores de base de datos
Comprueba que las rutas de las migraciones son correctas. Si usas SQLite, asegúrate de incluir el paso create-sqlite-db en el build.