halleck45/behat-tools-bundle
A Symfony bundle that integrates Behat into Laravel/PHP projects, providing tools and services to streamline behavior-driven testing setup.
First, calibrate expectations: this is a Symfony bundle, not a Laravel package. There is no service provider, no config/behat_tools.php, and no facade. As a Laravel developer you have two realistic paths:
tests/Feature/*.feature or features/). Given the package's size (5 stars, 0 dependents), this is usually the pragmatic choice.Minimal Symfony setup if you go path 1:
composer require halleck45/behat-tools-bundle
new Halleck45\BehatToolsBundle\BehatToolsBundle() in app/AppKernel.php (Symfony 2/3) or config/bundles.php (Symfony 4+).Resources/config/routing.yml for the actual prefix).behat_tools: block to your config pointing at your features directory and Behat binary. Read DependencyInjection/Configuration.php first — that file is the authoritative list of options, not the README.bin/console cache:clear) and hit the route it exposes.Where to look first, in order: Configuration.php → the controller → Resources/views/ → Resources/config/routing.yml. That's the entire surface area of a bundle this size.
First use case: point it at features/ and get a browsable inventory of .feature files and scenarios in a web UI, instead of grep -r "Scenario:" across the repo.
dev environment, and put the route behind your existing firewall/access_control. A web UI that lists and possibly executes tests is an internal tool, not a production endpoint.features/<domain>/<thing>.feature with tags (@wip, @smoke) so listing/filtering is meaningful. Garbage in, garbage inventory out.behat (or php artisan behat equivalents) directly with explicit exit codes. A web UI is for humans browsing locally.Route::get('/dev/features', ...) in a dev-only route file, a controller that globs base_path('features/**/*.feature') or tests/**/*.feature, a lightweight parser (regex on Feature:, Scenario:, @tags), and a Blade view. ~100 lines, zero dependency risk, and it matches Laravel conventions instead of fighting Symfony's.app/Resources/BehatToolsBundle/views/ (or templates/bundles/... on newer Symfony) rather than editing vendor code.composer require to fail on modern PHP/Symfony constraints. Check the composer.json require block before promising anyone a demo. If it installs at all, pin it and commit the lockfile.Illuminate\Support\ServiceProvider, no config publishing, no artisan commands. Any "it works in Laravel" claim you see is someone wrapping it manually.behat_tools config, always cache:clear. Symfony caches compiled container config aggressively, and stale config produces silent empty listings.bin/console debug:router | grep -i behat — is the route even registered? (2) bin/console config:dump-reference behat_tools — does your config key match the schema? (3) debug:container for the bundle's services — are they public/instantiated?services.yml. Don't expect event hooks or a plugin system.Configuration.php tree and the controller signatures are the truth.How can I help you explore Laravel packages today?