Mercurial > hg > cmmr2012-drupal-site
diff core/tests/README.md @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children | a9cd425dd02b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/tests/README.md Thu Jul 05 14:24:15 2018 +0000 @@ -0,0 +1,104 @@ +# Running tests + +## Functional tests + +* Run the functional tests: + ``` + export SIMPLETEST_DB='mysql://root@localhost/dev_d8' + export SIMPLETEST_BASE_URL='http://d8.dev' + ./vendor/bin/phpunit -c core --testsuite functional + ``` + +Note: functional tests have to be invoked with a user in the same group as the +web server user. You can either configure Apache (or nginx) to run as your own +system user or run tests as a privileged user instead. + +To develop locally, a straightforward - but also less secure - approach is to +run tests as your own system user. To achieve that, change the default Apache +user to run as your system user. Typically, you'd need to modify +`/etc/apache2/envvars` on Linux or `/etc/apache2/httpd.conf` on Mac. + +Example for Linux: + +``` +export APACHE_RUN_USER=<your-user> +export APACHE_RUN_GROUP=<your-group> +``` + +Example for Mac: + +``` +User <your-user> +Group <your-group> +``` + +## Functional javascript tests + +Javascript tests use the Selenium2Driver which allows you to control a +big range of browsers. By default Drupal uses chromedriver to run tests. +For help installing and starting selenium, see http://mink.behat.org/en/latest/drivers/selenium2.html + +* Make sure you have a recent version of chrome installed + +* Install selenium-server-standalone and chromedriver + +Example for Mac: + +``` +brew install selenium-server-standalone +brew install chromedriver +``` + +* Before running tests make sure that selenium-server is running +``` +selenium-server -port 4444 +``` + +* Set the correct driver args and run the tests: +``` +export MINK_DRIVER_ARGS_WEBDRIVER='["chrome", null, "http://localhost:4444/wd/hub"]' +./vendor/bin/phpunit -c core --testsuite functional-javascript +``` + +* It is possible to use alternate browsers if the required dependencies are +installed. For example to use Firefox: + +``` +export MINK_DRIVER_ARGS_WEBDRIVER='["firefox", null, "http://localhost:4444/wd/hub"]' +./vendor/bin/phpunit -c core --testsuite functional-javascript +``` + +* To force all BrowserTestBase (including legacy JavascriptTestBase) tests to use +webdriver: + +``` +export MINK_DRIVER_CLASS='Drupal\FunctionalJavascriptTests\DrupalSelenium2Driver' +./vendor/bin/phpunit -c core --testsuite functional-javascript +``` + +## Running legacy javascript tests + +Older javascript test may use the PhantomJSDriver. To run these tests you will +have to install and start PhantomJS. + +* Start PhantomJS: + ``` + phantomjs --ssl-protocol=any --ignore-ssl-errors=true ./vendor/jcalderonzumba/gastonjs/src/Client/main.js 8510 1024 768 2>&1 >> /dev/null & + ``` + +* Then you can run the test: +``` +./vendor/bin/phpunit -c core --testsuite functional-javascript +``` + +## Running tests with a different user + +If the default user is e.g. `www-data`, the above functional tests will have to +be invoked with sudo instead: + +``` +export SIMPLETEST_DB='mysql://root@localhost/dev_d8' +export SIMPLETEST_BASE_URL='http://d8.dev' +sudo -u www-data -E ./vendor/bin/phpunit -c core --testsuite functional +sudo -u www-data -E ./vendor/bin/phpunit -c core --testsuite functional-javascript +```