Running Acceptance Tests
Running in Docker¶
selenium-server container with installed Selenium hub and Google Chrome, prepared to run the acceptance tests.
You should run all command mentioned below while logged into your
php-fpm container via command:
docker exec -it shopsys-framework-php-fpm bash
selenium-server to be able to connect to you
webserver container and access your application, all domains should have URL set to
This is done via ENV
OVERWRITE_DOMAIN_URL defined in
Everything should be configured for you by default but it is important to keep the domain URL overwriting in mind when dealing with acceptance tests.
If you are logged into your
php-fpm container and have the
OVERWRITE_DOMAIN_URL ENV properly set,
you can run acceptance tests:
php phing tests-acceptance
In this step you were using Phing target
More information about what Phing targets are and how they work can be found in Console Commands for Application Management (Phing Targets)
How to watch what is going on in the selenium browser¶
By default, Shopsys Framework uses
selenium/standalone-chrome image for
selenium-server service which means you are not able to watch what is going on in the selenium browser.
However, there is a quick solution which allows you to watch the progress of your acceptance tests:
standalone-chrome-debug image for
selenium-server service and new settings of ports:
selenium-server: - image: selenium/standalone-chrome:3.141.5 + image: selenium/standalone-chrome-debug:3.141.5 container_name: shopsys-framework-acceptance-tests ports: - "4400:4444" + - "5900:5900"
docker-compose up -d
From your local machine, connect to the remote desktop on
- for the connection, you can use e.g. Remmina tool that is installed by default in Ubuntu
- on Mac, you can run
open vnc://127.0.0.1:5900in your terminal
- the default password for the connection is
Run acceptance tests as described in the paragraph above
You must choose compatible versions of Google Chrome and ChromeDriver. As Chrome browser has auto-update enabled by default this may require you to update ChromeDriver from time to time.
When installing Shopsys Framework natively, it is important to update parameters in
OVERWRITE_DOMAIN_URL=(disables domain URL overwriting in
Installing Google Chrome browser¶
Download and install Google Chrome browser from https://www.google.com/chrome/browser/desktop/
Setting-up ChromeDriver (Selenium WebDriver)¶
ChromeDriver can be downloaded from: https://sites.google.com/a/chromium.org/chromedriver/downloads
Extract the executable in your system
Alternatively, you can extract it anywhere and just point to the executable from your
Running the whole acceptance test suite¶
After finishing the steps above, running acceptance tests is easy.
In native installation run the following commands (each in a separate terminal):¶
# run PHP web server php phing server-run # run Selenium server php phing selenium-run
In both docker and native installation run¶
# run acceptance test suite php phing tests-acceptance
pg_dump is executed internally to enable reverting the test DB to its previous state.
You may have to add path of your PostgreSQL installation to the system
PATH directory for it to work.
If you interrupt running acceptance tests you may need to delete root file named
ACCEPTANCE that is temporarily created to switch application to
Running individual tests¶
Sometimes you may want to debug individual test without running the whole acceptance test suite (which can take several minutes).
Run single test¶
php phing tests-acceptance-single -D test=OrderCest:testOrderCanBeCompleted
Run all tests in one file¶
php phing tests-acceptance-single -D test=OrderCest
Do not forget to run both PHP web server and Selenium server in native installation. See Running the whole acceptance test suite.