Getting started¶
Choosing Driver¶
Selenium2 (with a browser)¶
It is recommended to run tests locally with the Selenium driver. Using the Selenium driver on a real browser allows you to see the tests running (as opposed to using a headless browser as detailed in the following sections).
You can download Selenium server from here, or install it as follows:
$ mkdir ~/jars
$ cd jars
$ wget http://selenium-release.storage.googleapis.com/2.44/selenium-server-standalone-2.44.0.jar
You can then run it:
$ java -jar selenium-server-standalone-2.44.0.jar -browserSessionReuse -singleWindow
The -browserSessionReuse
tells selenium NOT to close the window after
every test and -singleWindow
will cause Selenium not to use more than one
window.
Note
You will need to install the Java Runtime Environment. On a debian based
system you could do apt-get install default-jre
Selenium2 (headless, with PhantomJs)¶
Note
It is not currently recommended to run tests on PhantomJS - the results may be unpredictable.
PhantomJS can be installed with npm
:
$ npm install phantomjs
You can then run it as follows:
$ phantomjs --webdriver=8643
Then you will need to copy the default behat.yml.dist
to behat.yml
and
add the wd_host
option as follows:
defaults:
# ...
extensions:
# ...
Behat\MinkExtension:
sessions:
default:
selenium2:
wd_host: "http://localhost:8643/wd/hub"
Sauce Labs¶
Our continuous integration system will run the tests on the Sauce Labs service. See Sauce Labs to find out how to run them yourself or for more information.
Running the tests¶
You can run all the tests as follows:
$ ./vendor/behat/behat/bin/behat -p <profile>
Where <profile>
is one of:
selenium: Tests on your local machine via Selenium using a real browser above)
sauce_labs: Run the tests on Sauce Labs (see Sauce Labs).
Note
If you want to run the tests on your local machine with the default configuration you have to make sure that a Sulu instance is running on 127.0.0.1:8001. You can use the command ./app/console server:run 127.0.0.1:8001 –router=app/config/router_admin.php for that.
The tests are split up into a number of suites. There is one suite for each
bundle, named after the bundle in lowercase, for example SuluContactBundle
has the suite named contact
.
Run specific suites as follows:
$ ./vendor/behat/behat/bin/behat --suite=contact -p <profile>
Further more you can filter for specific tests using the name
option:
$ ./vendor/behat/behat/bin/behat --suite=contact --name="Create" -p <profile>
The above will run all scenarios in the contact
suite which contain the word
Create
.