Automatically installs Selenium (if necessary) and runs End-to-End tests with Nightwatch.
Installs Selenium
Starts Selenium on default 4444 port with -debug
outputs logs to $LOG_DIR
or $(pwd)/reports/selenium.log
Starts WebpackDevServer based on $WEBPACK_CONFIG
or $(pwd)/webpack.config.js
on port $PORT
or 8080
Runs Nightwatch with $NIGHTWATCH_CONFIG
or $(pwd)/nightwatch.json
or baked in nightwatch.json
config and outputs reports to $REPORT_DIR
or $(pwd)/reports/test-e2e
Java
Required by Selenium
webpack.config.js to run dev server
Make sure you have latest Chrome installed
When using CircleCI change project settings to use the latest Ubuntu, which includes the latest Chrome: https://circleci.com/docs/build-image-trusty/
You may also need to add these lines to install the latest chrome on CircleCI:
dependencies:
pre:
- wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
- sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
- sudo apt-get update
- sudo apt-get --only-upgrade install google-chrome-stable
machine:
node:
version: 7
test:
pre:
- wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
- sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
- sudo apt-get update
- sudo apt-get --only-upgrade install google-chrome-stable
- google-chrome --version
override:
- REPORT_DIR=${CIRCLE_TEST_REPORTS} LOG_DIR=${CIRCLE_ARTIFACTS} $(npm bin)/nightwatch-autorun
sudo: required
dist: trusty
language: node_js
cache:
directories:
- node_modules
notifications:
email: false
addons:
apt:
sources:
- google-chrome
packages:
- google-chrome-stable
- oracle-java8-set-default
node_js:
- '6'
- '5'
- '4'
before_install:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
- npm install -g npm@3
script:
- $(npm bin)/nightwatch-autorun
branches:
only:
- master
branches:
only:
- master
environment:
nodejs_version: '7'
install:
- choco install googlechrome
- ps: Install-Product node $env:nodejs_version
- set CI=true
- set PATH=%APPDATA%\npm;%PATH%
- npm install
build: off
version: '{build}'
shallow_clone: true
clone_depth: 1
test_script:
- node --version
- npm --version
- node_modules\.bin\nightwatch-autorun
artifacts:
- path: reports
name: Reports