A trivial extension for people who forget to start their webserver
Require in composer
composer require ciaranmcnulty/behat-localwebserverextension --dev
Add to your behat.yml
:
default:
extensions:
Cjm\Behat\LocalWebserverExtension: ~
Run your suite, and your web examples should pass - the internal PHP webserver is started at suite start and exited at suite end.
Available configuration options:
default:
extensions:
Cjm\Behat\LocalWebserverExtension:
host : 192.168.1.1 # defaults to 'localhost'
port : 80 # defaults to '8000'
docroot: /wwroot # defaults to '%paths.base%/web'
router: router.php # defaults to 'null'
suites: [ web, ui ] # defaults to (all suites)
If your behat config is elsewhere than in your root directory (for example app/behat.yml
you need to customize the docroot to the right path. In our example it would be docroot: '%paths.base%/../web'
When MinkExtension is used, default host and port will be read from Mink's base_url
setting , but you can still override
if required.
default:
extensions:
Behat\MinkExtension:
base_url: 'http://dev.local:9001'
sessions:
default:
goutte: ~
Cjm\Behat\LocalWebserverExtension: ~
To do:
- Only turn webserver on for certain contexts
- Support symfony app console
- Support custom server startup / stop commands