web-component-tester: Support headless mode

This adds support for running chrome in headless mode.

Support for running firefox in headless mode should work but currently
doesn't.

Moreover, i've added browser option handling to wct [1].

[1] b8388d1a8d

Bug: Issue 8023
Change-Id: I47cd9cd69fc78739219223c74d7b2edf2f97d6c7
(cherry picked from commit f633e0dcacd5f6307ef77b3a40d642310e7e60ee)
This commit is contained in:
Paladox none 2018-01-17 19:23:26 +00:00 committed by Paladox
parent 41afd4beae
commit e0dd240c58
3 changed files with 26 additions and 1 deletions

View File

@ -110,6 +110,17 @@ For interactively working on a single test file, do the following:
Then visit http://localhost:8081/elements/foo/bar_test.html
To run Chrome tests in headless mode:
```sh
WCT_HEADLESS_MODE=1 ./polygerrit-ui/app/run_test.sh
```
Toolchain requirements for headless mode:
* Chrome: 59+
* web-component-tester: v6.5.0+
## Style guide
We follow the [Google JavaScript Style Guide](https://google.github.io/styleguide/javascriptguide.xml)

View File

@ -20,5 +20,6 @@ bazel test \
--test_env="WCT_ARGS=${WCT_ARGS}" \
--test_env="NPM=${npm_bin}" \
--test_env="DISPLAY=${DISPLAY}" \
--test_env="WCT_HEADLESS_MODE=${WCT_HEADLESS_MODE}" \
"$@" \
//polygerrit-ui/app:wct_test

View File

@ -12,6 +12,15 @@ unzip -qd $t $code
mkdir -p $t/test
cp $TEST_SRCDIR/gerrit/polygerrit-ui/app/test/index.html $t/test/
if [ "${WCT_HEADLESS_MODE:-0}" != "0" ]; then
CHROME_OPTIONS=[\'start-maximized\',\'headless\',\'disable-gpu\',\'no-sandbox\']
# TODO(paladox): Fix Firefox support for headless mode
FIREFOX_OPTIONS=[\'\']
else
CHROME_OPTIONS=[\'start-maximized\']
FIREFOX_OPTIONS=[\'\']
fi
# For some reason wct tries to install selenium into its node_modules
# directory on first run. If you've installed into /usr/local and
# aren't running wct as root, you're screwed. Turning this option off
@ -31,7 +40,11 @@ module.exports = {
},
'plugins': {
'local': {
'skipSeleniumInstall': true
'skipSeleniumInstall': true,
'browserOptions': {
'chrome': ${CHROME_OPTIONS},
'firefox': ${FIREFOX_OPTIONS}
}
},
'sauce': {
'disabled': true,