wiki.techinc.nl/tests/selenium
2018-10-16 22:23:36 +00:00
..
pageobjects selenium: undo page 2018-08-14 16:27:31 +02:00
specs selenium: invoke jobs to enforce eventual consistency 2018-09-20 11:13:38 +02:00
wdio-mediawiki wdio-mediawiki: Add 'fragment' parameter to Page 2018-10-04 11:38:58 +02:00
.eslintrc.json selenium: Run wdio directly without grunt 2018-04-30 21:54:15 +00:00
README.md Selenium: record video of every test 2018-10-16 22:07:22 +00:00
selenium.sh Use wd/hub not /wd/hub in selenium.sh 2018-06-13 11:56:15 +00:00
wdio.conf.js Selenium: record video of every test 2018-10-16 22:07:22 +00:00

Selenium tests

Prerequisites

If using MediaWiki-Vagrant:

cd mediawiki/vagrant
vagrant up

Installation

cd mediawiki
npm install

Usage

npm run selenium

There are three supported modes of running the tests:

  • Headless. It's the default. You will not see the browser while tests are running because it's running in a headless mode. This mode should run fine on all supported platforms.
  • Headless recording. Set DISPLAY environment variable to a value that starts with colon (:) and video of each test will be recorded. Browser will run headless. Recording videos works only on Linux.
  • Visible. If you want to see the browser, set DISPLAY environment variable to any value that does not start with colon. This mode will not work in a headless environment like MediaWiki-Vagrant.

Example recording session:

sudo apt-get install chromedriver ffmpeg xvfb
export DISPLAY=:94
Xvfb "$DISPLAY" -screen 0 1280x1024x24 &
npm run selenium

Example visible session:

DISPLAY=1 npm run selenium

To run only one test (for example specs/page.js), you first need to start Chromedriver:

chromedriver --url-base=wd/hub --port=4444

Then, in another terminal:

npm run selenium-test -- --spec tests/selenium/specs/page.js

You can also filter specific cases, for ones that contain the string 'preferences':

npm run selenium-test -- tests/selenium/specs/user.js --mochaOpts.grep preferences

The runner reads the configuration from wdio.conf.js. The defaults target a MediaWiki-Vagrant installation on http://127.0.0.1:8080 with a user "Admin" and password "vagrant". Those settings can be overridden using environment variables:

  • MW_SERVER: to be set to the value of your $wgServer
  • MW_SCRIPT_PATH: ditto with $wgScriptPath
  • MEDIAWIKI_USER: username of an account that can create users on the wiki
  • MEDIAWIKI_PASSWORD: password for above user

Example:

MW_SERVER=http://example.org MW_SCRIPT_PATH=/dev/w npm run selenium

Further reading