Replace `npm run selenium` with `npm run selenium-test`. Fix MD001 - Heading levels should only increment by one level at a time. https://github.com/DavidAnson/markdownlint/blob/v0.33.0/doc/md001.md Bug: T324766 Change-Id: Ie3d48fdd65496385a63609eef7e228031ef90f1a
73 lines
2.2 KiB
Markdown
73 lines
2.2 KiB
Markdown
# Selenium tests
|
|
|
|
## Getting started
|
|
|
|
See <https://www.mediawiki.org/wiki/Selenium> for how to best
|
|
run these locally. Below the internal prerequisites are documented,
|
|
but you might not need to install these yourself.
|
|
|
|
## Prerequisites
|
|
|
|
- [Chromium](https://www.chromium.org/Home) or [Chrome](https://www.google.com/chrome)
|
|
- [Node.js](https://nodejs.org)
|
|
|
|
## Usage
|
|
|
|
There are three supported modes of running the tests.
|
|
|
|
#### Headless
|
|
|
|
The Selenium tests default to headless mode, unless a `DISPLAY` environment variable is set.
|
|
This variable may be set on Linux desktop and XQuartz environments. To run headless there,
|
|
unset the `DISPLAY` environment variable first.
|
|
|
|
npm run selenium-test
|
|
|
|
Or:
|
|
|
|
DISPLAY= npm run selenium-test
|
|
|
|
### Visible browser
|
|
|
|
To see the browser window, ensure the `DISPLAY` variable is set. On Linux desktop and in XQuartz
|
|
environments this is probably set already. On macOS, set it to a dummy value like `1`.
|
|
|
|
DISPLAY=1 npm run selenium-test
|
|
|
|
### Video recording
|
|
|
|
To capture a video, the tests have to run in the context of an X11 server, with the `DISPLAY`
|
|
environment variable set to its display name. If the shell has no X11 server or if you want
|
|
to hide the output, you can also launch a virtual X11 display using Xvfb. Recording videos
|
|
is currently supported only on Linux, and is triggered by the `DISPLAY` value starting with
|
|
a colon (as Xvfb typically would).
|
|
|
|
Example test run in [Fresh](https://gerrit.wikimedia.org/g/fresh).
|
|
|
|
fresh-node -env -net
|
|
export DISPLAY=:1
|
|
Xvfb "$DISPLAY" -screen 0 1280x1024x24 &
|
|
npm run selenium-test
|
|
|
|
## Filter
|
|
|
|
Run a specific spec:
|
|
|
|
npm run selenium-test -- --spec tests/selenium/specs/page.js
|
|
|
|
To filter by test case, e.g. with the name containing "preferences":
|
|
|
|
npm run selenium-test -- --mochaOpts.grep preferences
|
|
|
|
## Configuration
|
|
|
|
The following environment variables decide where to find MediaWiki and how to login:
|
|
|
|
- `MW_SERVER`: The value of `$wgServer`.
|
|
- `MW_SCRIPT_PATH`: The value of `$wgScriptPath`.
|
|
- `MEDIAWIKI_USER`: Username of a wiki account with sysop rights.
|
|
- `MEDIAWIKI_PASSWORD`: Password for this user.
|
|
|
|
## Further reading
|
|
|
|
- [Selenium](https://www.mediawiki.org/wiki/Selenium) on mediawiki.org
|