From 82ffa9571c264d2b9c770bb0139db4bac31c76c4 Mon Sep 17 00:00:00 2001 From: Michael Giambalvo Date: Sun, 25 Sep 2016 22:25:20 +0100 Subject: [PATCH 1/7] Setting up Travis with saucelabs. --- scripts/sauce_connect_setup.sh | 50 ++++++++++++++++++++++++++++++++++ scripts/travis_setup.sh | 11 ++++++++ scripts/travis_test.sh | 3 ++ 3 files changed, 64 insertions(+) create mode 100755 scripts/sauce_connect_setup.sh create mode 100755 scripts/travis_setup.sh create mode 100644 scripts/travis_test.sh diff --git a/scripts/sauce_connect_setup.sh b/scripts/sauce_connect_setup.sh new file mode 100755 index 0000000..cb28c78 --- /dev/null +++ b/scripts/sauce_connect_setup.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# Taken from the Angular2 repo. + +set -e -o pipefail + +# Setup and start Sauce Connect for your TravisCI build +# This script requires your .travis.yml to include the following two private env variables: +# SAUCE_USERNAME +# SAUCE_ACCESS_KEY +# Follow the steps at https://saucelabs.com/opensource/travis to set that up. +# +# Curl and run this script as part of your .travis.yml before_script section: +# before_script: +# - curl https://gist.github.com/santiycr/5139565/raw/sauce_connect_setup.sh | bash + +CONNECT_URL="https://saucelabs.com/downloads/sc-${SAUCE_CONNECT_VERSION}-linux.tar.gz" +CONNECT_DIR="/tmp/sauce-connect-$RANDOM" +CONNECT_DOWNLOAD="sc-latest-linux.tar.gz" + +CONNECT_LOG="$LOGS_DIR/sauce-connect" +CONNECT_STDOUT="$LOGS_DIR/sauce-connect.stdout" +CONNECT_STDERR="$LOGS_DIR/sauce-connect.stderr" + +# Get Connect and start it +mkdir -p $CONNECT_DIR +cd $CONNECT_DIR +curl $CONNECT_URL -o $CONNECT_DOWNLOAD 2> /dev/null 1> /dev/null +mkdir sauce-connect +tar --extract --file=$CONNECT_DOWNLOAD --strip-components=1 --directory=sauce-connect > /dev/null +rm $CONNECT_DOWNLOAD + +SAUCE_ACCESS_KEY=`echo $SAUCE_ACCESS_KEY | rev` + +ARGS="" + +# Set tunnel-id only on Travis, to make local testing easier. +if [ ! -z "$TRAVIS_JOB_NUMBER" ]; then + ARGS="$ARGS --tunnel-identifier $TRAVIS_JOB_NUMBER" +fi +if [ ! -z "$BROWSER_PROVIDER_READY_FILE" ]; then + ARGS="$ARGS --readyfile $BROWSER_PROVIDER_READY_FILE" +fi + + +echo "Starting Sauce Connect in the background, logging into:" +echo " $CONNECT_LOG" +echo " $CONNECT_STDOUT" +echo " $CONNECT_STDERR" +sauce-connect/bin/sc -u $SAUCE_USERNAME -k $SAUCE_ACCESS_KEY $ARGS \ + --logfile $CONNECT_LOG 2> $CONNECT_STDERR 1> $CONNECT_STDOUT & diff --git a/scripts/travis_setup.sh b/scripts/travis_setup.sh new file mode 100755 index 0000000..006b2af --- /dev/null +++ b/scripts/travis_setup.sh @@ -0,0 +1,11 @@ +# Sets up the test environment on Travis. + +# Start Xvfb when running locally. +if [[ ${TRAVIS} && (${CI_MODE} == "local") ]]; then + /etc/init.d/xvfb start +fi + +# Start SauceConnect when running on SauceLabs. +if [[ ${TRAVIS} && (${CI_MODE} == "saucelabs") ]]; then + ./scripts/sauce_connect_setup.sh +fi diff --git a/scripts/travis_test.sh b/scripts/travis_test.sh new file mode 100644 index 0000000..5e74690 --- /dev/null +++ b/scripts/travis_test.sh @@ -0,0 +1,3 @@ +# Runs the Travis CI + + From 8b07cf3f0d8edcccd7d751d095325cdbef658f34 Mon Sep 17 00:00:00 2001 From: Michael Giambalvo Date: Sun, 25 Sep 2016 22:49:20 +0100 Subject: [PATCH 2/7] Add a travis.yml with local and saucelabs testing. --- .travis.yml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index ee29e4d..5e00958 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,20 +3,31 @@ sudo: required language: node_js os: - linux + env: global: - DBUS_SESSION_BUS_ADDRESS=/dev/null - DISPLAY=:99.0 - CHROME_BIN=chromium-browser + - SAUCE_ACCESS_KEY=72e4f85f-4e6b-4971-b8c5-f6707308f63e + - SAUCE_USERNAME="mgiambalvo" + - SAUCE_CONNECT_VERSION="4.4.0" + matrix: + - CI_MODE=local + - CI_MODE=saucelabs + cache: directories: - tour-of-heroes/node_modules -before_script: - - sh -e /etc/init.d/xvfb start + install: - cd tour-of-heroes - npm install + +before_script: + - ./scripts/travis_setup.sh + script: - npm run lint - npm run test -- --watch=false - - npm run travis \ No newline at end of file + - npm run travis From 321eda8b2f425e1d8b02c8f35d2be6e4eacab405 Mon Sep 17 00:00:00 2001 From: Michael Giambalvo Date: Mon, 26 Sep 2016 00:03:12 +0100 Subject: [PATCH 3/7] Trying out a basic port of ci-lite. --- .travis.yml | 6 +++--- scripts/env.sh | 4 ++++ scripts/travis_setup.sh | 6 +++++- scripts/travis_test.sh | 14 ++++++++++++++ tour-of-heroes/package.json | 4 +--- tour-of-heroes/protractor-saucelabs.conf.js | 9 +++++++++ 6 files changed, 36 insertions(+), 7 deletions(-) create mode 100644 scripts/env.sh create mode 100644 tour-of-heroes/protractor-saucelabs.conf.js diff --git a/.travis.yml b/.travis.yml index 5e00958..0bae13f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,7 @@ env: - SAUCE_ACCESS_KEY=72e4f85f-4e6b-4971-b8c5-f6707308f63e - SAUCE_USERNAME="mgiambalvo" - SAUCE_CONNECT_VERSION="4.4.0" + - LOGS_DIR="/tmp/logs" matrix: - CI_MODE=local - CI_MODE=saucelabs @@ -23,11 +24,10 @@ cache: install: - cd tour-of-heroes - npm install + - cd .. before_script: - ./scripts/travis_setup.sh script: - - npm run lint - - npm run test -- --watch=false - - npm run travis + - ./scripts/travis_test.sh diff --git a/scripts/env.sh b/scripts/env.sh new file mode 100644 index 0000000..0da99b9 --- /dev/null +++ b/scripts/env.sh @@ -0,0 +1,4 @@ +export SAUCE_ACCESS_KEY="72e4f85f-4e6b-4971-b8c5-f6707308f63e" +export SAUCE_USERNAME="mgiambalvo" +export SAUCE_CONNECT_VERSION="4.4.0" +export LOGS_DIR="/tmp/logs" diff --git a/scripts/travis_setup.sh b/scripts/travis_setup.sh index 006b2af..e7accd7 100755 --- a/scripts/travis_setup.sh +++ b/scripts/travis_setup.sh @@ -1,5 +1,9 @@ # Sets up the test environment on Travis. +set -ex -o pipefail +cd `dirname $0` +source ./env.sh + # Start Xvfb when running locally. if [[ ${TRAVIS} && (${CI_MODE} == "local") ]]; then /etc/init.d/xvfb start @@ -7,5 +11,5 @@ fi # Start SauceConnect when running on SauceLabs. if [[ ${TRAVIS} && (${CI_MODE} == "saucelabs") ]]; then - ./scripts/sauce_connect_setup.sh + ./sauce_connect_setup.sh fi diff --git a/scripts/travis_test.sh b/scripts/travis_test.sh index 5e74690..d477b9b 100644 --- a/scripts/travis_test.sh +++ b/scripts/travis_test.sh @@ -1,3 +1,17 @@ # Runs the Travis CI +set -ex -o pipefail +cd `dirname $0` +source ./env.sh +cd ../tour-of-heroes +ng build +npm run lint +npm run test -- --watch=false + +# When using saucelabs, use a different config. +if [[ ${TRAVIS} && (${CI_MODE} == "saucelabs") ]]; then + PROTRACTOR_CONFIG="protractor-saucelabs.conf.js" +fi + +concurrently --success first --kill-others \"lite-server\" \"protractor $PROTRACTOR_CONFIG\" diff --git a/tour-of-heroes/package.json b/tour-of-heroes/package.json index 664cc6a..3a86a30 100644 --- a/tour-of-heroes/package.json +++ b/tour-of-heroes/package.json @@ -8,9 +8,7 @@ "lint": "tslint \"src/**/*.ts\"", "test": "ng test", "pree2e": "webdriver-manager update", - "e2e": "protractor", - "pretravis": "ng build", - "travis": "concurrently --success first --kill-others \"lite-server\" \"npm run e2e\"" + "e2e": "protractor" }, "private": true, "dependencies": { diff --git a/tour-of-heroes/protractor-saucelabs.conf.js b/tour-of-heroes/protractor-saucelabs.conf.js new file mode 100644 index 0000000..9609b30 --- /dev/null +++ b/tour-of-heroes/protractor-saucelabs.conf.js @@ -0,0 +1,9 @@ +var defaultConfig = require('./protractor.conf.js').config; + +var ciConfig = { + sauceUser: process.env.SAUCE_USERNAME, + sauceKey: process.env.SAUCE_ACCESS_KEY +}; + +exports.config = Object.assign(defaultConfig, ciConfig); +console.log(exports.config); From b1ac2dea47decc1e8c8bee56553b71d94dbcf91b Mon Sep 17 00:00:00 2001 From: Michael Giambalvo Date: Mon, 26 Sep 2016 00:23:27 +0100 Subject: [PATCH 4/7] Trying a simpler way, using Travis's integration. --- .travis.yml | 14 +++--- scripts/env.sh | 4 -- scripts/sauce_connect_setup.sh | 50 --------------------- scripts/travis_setup.sh | 10 +---- scripts/travis_test.sh | 15 ++++--- tour-of-heroes/protractor-saucelabs.conf.js | 49 +++++++++++++++++++- 6 files changed, 67 insertions(+), 75 deletions(-) delete mode 100644 scripts/env.sh delete mode 100755 scripts/sauce_connect_setup.sh mode change 100644 => 100755 scripts/travis_test.sh diff --git a/.travis.yml b/.travis.yml index 0bae13f..6083ba4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,18 +4,20 @@ language: node_js os: - linux +addons: + sauce_connect: + username: "mgiambalvo" + jwt: + secure: "EYOYWOj2TyoPvUIl0ZCAbBwdvwj6gZV+hYIpILm8sp6Dtgp6+5NFvK1+5x4d4sIBjSKhstJFjtd7SMgvFeffEyoixtTvApArb4RI2g2gOHgxG5TkEysIOHp3TGUSKBM+u9wB3txJxH93jQdqbp1MuPI1lcoOXER8UmfKIKxjN7mAbXJ6+oEAWEv8c5hvxGP1BrXA5U6JTpcS5pQdwkm7mbAlH0PQ6ogOPuVCBh0eZDUp/s588GT1OSqLvhUoHJ6+w7D0QXUly/XCz+B7ppKgQtdfLrrSCGXilQT7SyQ78UZ5tqFdQeH0wrO2rzwePQ30N1EC7HbQCRlRNb866aB4ykgmJnHEURs0NsuHqpZmT4rX2NBZPOZC0SVaqrNSwmBYrIKjmyN/z6OoCs9RPqsM7TN57x7cCZL5bX8LyOfgdV/CGE2vkO7HG+t/dykEqKCYPIMcu6/fSRT99HrZSRw/4NKQPT/fn+n8phTh0gFqpODl2/weBLm41zTH73dzorwhHEN8MtVFJbjcTxdYRMwFHKkOhJTLS0W0nMXCNDxj9p0iCfH9Os6U6CdRq3UnZGI7I2QnFBM+wE2VpAHZzhXcWJushEfKJi4VndxnGbOPby38U+DU2SyNaksyNaEN0uqfHA+QLtfoIcfMXKRTW4L69U+OCSNj3WRMtkJt6ubaJ/M=" + env: global: - DBUS_SESSION_BUS_ADDRESS=/dev/null - DISPLAY=:99.0 - CHROME_BIN=chromium-browser - - SAUCE_ACCESS_KEY=72e4f85f-4e6b-4971-b8c5-f6707308f63e - - SAUCE_USERNAME="mgiambalvo" - - SAUCE_CONNECT_VERSION="4.4.0" - - LOGS_DIR="/tmp/logs" matrix: - - CI_MODE=local - - CI_MODE=saucelabs + - CI_MODE=local_e2e + - CI_MODE=saucelabs_e2e cache: directories: diff --git a/scripts/env.sh b/scripts/env.sh deleted file mode 100644 index 0da99b9..0000000 --- a/scripts/env.sh +++ /dev/null @@ -1,4 +0,0 @@ -export SAUCE_ACCESS_KEY="72e4f85f-4e6b-4971-b8c5-f6707308f63e" -export SAUCE_USERNAME="mgiambalvo" -export SAUCE_CONNECT_VERSION="4.4.0" -export LOGS_DIR="/tmp/logs" diff --git a/scripts/sauce_connect_setup.sh b/scripts/sauce_connect_setup.sh deleted file mode 100755 index cb28c78..0000000 --- a/scripts/sauce_connect_setup.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# Taken from the Angular2 repo. - -set -e -o pipefail - -# Setup and start Sauce Connect for your TravisCI build -# This script requires your .travis.yml to include the following two private env variables: -# SAUCE_USERNAME -# SAUCE_ACCESS_KEY -# Follow the steps at https://saucelabs.com/opensource/travis to set that up. -# -# Curl and run this script as part of your .travis.yml before_script section: -# before_script: -# - curl https://gist.github.com/santiycr/5139565/raw/sauce_connect_setup.sh | bash - -CONNECT_URL="https://saucelabs.com/downloads/sc-${SAUCE_CONNECT_VERSION}-linux.tar.gz" -CONNECT_DIR="/tmp/sauce-connect-$RANDOM" -CONNECT_DOWNLOAD="sc-latest-linux.tar.gz" - -CONNECT_LOG="$LOGS_DIR/sauce-connect" -CONNECT_STDOUT="$LOGS_DIR/sauce-connect.stdout" -CONNECT_STDERR="$LOGS_DIR/sauce-connect.stderr" - -# Get Connect and start it -mkdir -p $CONNECT_DIR -cd $CONNECT_DIR -curl $CONNECT_URL -o $CONNECT_DOWNLOAD 2> /dev/null 1> /dev/null -mkdir sauce-connect -tar --extract --file=$CONNECT_DOWNLOAD --strip-components=1 --directory=sauce-connect > /dev/null -rm $CONNECT_DOWNLOAD - -SAUCE_ACCESS_KEY=`echo $SAUCE_ACCESS_KEY | rev` - -ARGS="" - -# Set tunnel-id only on Travis, to make local testing easier. -if [ ! -z "$TRAVIS_JOB_NUMBER" ]; then - ARGS="$ARGS --tunnel-identifier $TRAVIS_JOB_NUMBER" -fi -if [ ! -z "$BROWSER_PROVIDER_READY_FILE" ]; then - ARGS="$ARGS --readyfile $BROWSER_PROVIDER_READY_FILE" -fi - - -echo "Starting Sauce Connect in the background, logging into:" -echo " $CONNECT_LOG" -echo " $CONNECT_STDOUT" -echo " $CONNECT_STDERR" -sauce-connect/bin/sc -u $SAUCE_USERNAME -k $SAUCE_ACCESS_KEY $ARGS \ - --logfile $CONNECT_LOG 2> $CONNECT_STDERR 1> $CONNECT_STDOUT & diff --git a/scripts/travis_setup.sh b/scripts/travis_setup.sh index e7accd7..05b68e8 100755 --- a/scripts/travis_setup.sh +++ b/scripts/travis_setup.sh @@ -2,14 +2,8 @@ set -ex -o pipefail cd `dirname $0` -source ./env.sh # Start Xvfb when running locally. -if [[ ${TRAVIS} && (${CI_MODE} == "local") ]]; then - /etc/init.d/xvfb start -fi - -# Start SauceConnect when running on SauceLabs. -if [[ ${TRAVIS} && (${CI_MODE} == "saucelabs") ]]; then - ./sauce_connect_setup.sh +if [[ ${TRAVIS} && (${CI_MODE} == "local_e2e") ]]; then + sh -e /etc/init.d/xvfb start fi diff --git a/scripts/travis_test.sh b/scripts/travis_test.sh old mode 100644 new mode 100755 index d477b9b..26ec43d --- a/scripts/travis_test.sh +++ b/scripts/travis_test.sh @@ -2,16 +2,19 @@ set -ex -o pipefail cd `dirname $0` -source ./env.sh cd ../tour-of-heroes ng build -npm run lint -npm run test -- --watch=false + +if [[ ${TRAVIS} && (${CI_MODE} == "local_e2e") ]]; then + npm run lint + npm run test -- --watch=false + PROTRACTOR_CONFIG="./protractor.conf.js" +fi # When using saucelabs, use a different config. -if [[ ${TRAVIS} && (${CI_MODE} == "saucelabs") ]]; then - PROTRACTOR_CONFIG="protractor-saucelabs.conf.js" +if [[ ${TRAVIS} && (${CI_MODE} == "saucelabs_e2e") ]]; then + PROTRACTOR_CONFIG="./protractor-saucelabs.conf.js" fi -concurrently --success first --kill-others \"lite-server\" \"protractor $PROTRACTOR_CONFIG\" +concurrently --success first --kill-others "lite-server" "protractor $PROTRACTOR_CONFIG" diff --git a/tour-of-heroes/protractor-saucelabs.conf.js b/tour-of-heroes/protractor-saucelabs.conf.js index 9609b30..d4a8759 100644 --- a/tour-of-heroes/protractor-saucelabs.conf.js +++ b/tour-of-heroes/protractor-saucelabs.conf.js @@ -1,8 +1,55 @@ var defaultConfig = require('./protractor.conf.js').config; +var testName = 'Tour of Heroes Smoke Tests' + var ciConfig = { + // Note that seleniumAddress must be unset in order for SauceLabs to work. + // seleniumAddress: "http://localhost:4445/wd/hub", sauceUser: process.env.SAUCE_USERNAME, - sauceKey: process.env.SAUCE_ACCESS_KEY + sauceKey: process.env.SAUCE_ACCESS_KEY, + + directConnect: false, + multiCapabilities: [{ + 'browserName': 'chrome', + 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER, + 'build': process.env.TRAVIS_BUILD_NUMBER, + 'name': testName, + 'version': '51', + 'selenium-version': '2.53.1', + 'chromedriver-version': '2.22', + 'platform': 'OS X 10.9' + }, { + 'browserName': 'firefox', + 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER, + 'build': process.env.TRAVIS_BUILD_NUMBER, + 'name': testName, + 'version': '44', + 'selenium-version': '2.53.1' + }, { + 'browserName': 'safari', + 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER, + 'build': process.env.TRAVIS_BUILD_NUMBER, + 'name': testName, + 'version': '8', + 'selenium-version': '2.44.0' // Use an old version because Safari has + // issues loading pages after 2.44. + }, { + 'browserName': 'safari', + 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER, + 'build': process.env.TRAVIS_BUILD_NUMBER, + 'name': testName, + 'version': '9', + 'selenium-version': '2.44.0' // Use an old version because Safari has + // issues loading pages after 2.44. + }, { + 'browserName': 'internet explorer', + 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER, + 'build': process.env.TRAVIS_BUILD_NUMBER, + 'name': testName, + 'version': '11', + 'selenium-version': '2.53.1', + 'platform': 'Windows 7' + }] }; exports.config = Object.assign(defaultConfig, ciConfig); From 2ea4abacb303ae71556e361de35edb550e5f3b6f Mon Sep 17 00:00:00 2001 From: Michael Giambalvo Date: Mon, 26 Sep 2016 01:49:04 +0100 Subject: [PATCH 5/7] Remember to update webdriver. --- scripts/travis_setup.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/travis_setup.sh b/scripts/travis_setup.sh index 05b68e8..cede07e 100755 --- a/scripts/travis_setup.sh +++ b/scripts/travis_setup.sh @@ -3,6 +3,9 @@ set -ex -o pipefail cd `dirname $0` +cd ../tour-of-heroes +webdriver-manager update + # Start Xvfb when running locally. if [[ ${TRAVIS} && (${CI_MODE} == "local_e2e") ]]; then sh -e /etc/init.d/xvfb start From 9980bf9999d58ee7b708b155f682572ba4b1cfd3 Mon Sep 17 00:00:00 2001 From: Michael Giambalvo Date: Mon, 26 Sep 2016 02:00:04 +0100 Subject: [PATCH 6/7] Only need one Safari. --- tour-of-heroes/protractor-saucelabs.conf.js | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/tour-of-heroes/protractor-saucelabs.conf.js b/tour-of-heroes/protractor-saucelabs.conf.js index d4a8759..5c94bd4 100644 --- a/tour-of-heroes/protractor-saucelabs.conf.js +++ b/tour-of-heroes/protractor-saucelabs.conf.js @@ -4,7 +4,7 @@ var testName = 'Tour of Heroes Smoke Tests' var ciConfig = { // Note that seleniumAddress must be unset in order for SauceLabs to work. - // seleniumAddress: "http://localhost:4445/wd/hub", + seleniumAddress: false, sauceUser: process.env.SAUCE_USERNAME, sauceKey: process.env.SAUCE_ACCESS_KEY, @@ -25,14 +25,6 @@ var ciConfig = { 'name': testName, 'version': '44', 'selenium-version': '2.53.1' - }, { - 'browserName': 'safari', - 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER, - 'build': process.env.TRAVIS_BUILD_NUMBER, - 'name': testName, - 'version': '8', - 'selenium-version': '2.44.0' // Use an old version because Safari has - // issues loading pages after 2.44. }, { 'browserName': 'safari', 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER, From d97b02f62ce4a606952556f464c7c1b0ad2d8567 Mon Sep 17 00:00:00 2001 From: Michael Giambalvo Date: Mon, 26 Sep 2016 11:13:37 +0100 Subject: [PATCH 7/7] Use a different sauce account, only use a single browser. There seems to be an issue with 'beforeLaunch' and multicapabilities that breaks ts-node when launching. --- .travis.yml | 4 +- tour-of-heroes/protractor-saucelabs.conf.js | 60 +++++++++------------ 2 files changed, 27 insertions(+), 37 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6083ba4..662bb31 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,9 +6,9 @@ os: addons: sauce_connect: - username: "mgiambalvo" + username: "notkit" jwt: - secure: "EYOYWOj2TyoPvUIl0ZCAbBwdvwj6gZV+hYIpILm8sp6Dtgp6+5NFvK1+5x4d4sIBjSKhstJFjtd7SMgvFeffEyoixtTvApArb4RI2g2gOHgxG5TkEysIOHp3TGUSKBM+u9wB3txJxH93jQdqbp1MuPI1lcoOXER8UmfKIKxjN7mAbXJ6+oEAWEv8c5hvxGP1BrXA5U6JTpcS5pQdwkm7mbAlH0PQ6ogOPuVCBh0eZDUp/s588GT1OSqLvhUoHJ6+w7D0QXUly/XCz+B7ppKgQtdfLrrSCGXilQT7SyQ78UZ5tqFdQeH0wrO2rzwePQ30N1EC7HbQCRlRNb866aB4ykgmJnHEURs0NsuHqpZmT4rX2NBZPOZC0SVaqrNSwmBYrIKjmyN/z6OoCs9RPqsM7TN57x7cCZL5bX8LyOfgdV/CGE2vkO7HG+t/dykEqKCYPIMcu6/fSRT99HrZSRw/4NKQPT/fn+n8phTh0gFqpODl2/weBLm41zTH73dzorwhHEN8MtVFJbjcTxdYRMwFHKkOhJTLS0W0nMXCNDxj9p0iCfH9Os6U6CdRq3UnZGI7I2QnFBM+wE2VpAHZzhXcWJushEfKJi4VndxnGbOPby38U+DU2SyNaksyNaEN0uqfHA+QLtfoIcfMXKRTW4L69U+OCSNj3WRMtkJt6ubaJ/M=" + secure: "r7M8cgpDqP8NeJThQBCfqsCJDOVI/+HASWjirtHiKjnPGNu7hgPdAISn+gQP+w5RwC8HNysprNKNzSHm+wcUACZH+3zBxj9lVHB7V1dXcWV1W/kegvjaXnpo45V/1pJRft8EVKZSExncGegLz/RkM01d/b/EZvXSzViVoSgXWr4wXrRnH0yshqH1DswrDGfh31HpCP7XA75g9nPohZrJaX0ChsWQS5wUKKNRsbwdyNV5A2tl1BlJnYxMXMysbiiXBj++21lltSBJa5hT1GQKsJ9pGVyWdopWYXFFgRtxn4AJwM9N9e6Ns44m3sP6v3uYyYtlTgB+TBECHi4u5FrTaSiFgFpjk6Z+ljihrZ/iPWn1MQpfjuPlKdwOd6hfFLd79M/uw1Ih+0q0HGER01QwjvrA7nGCLu74SED60cu9UuJqSBQJceZ5nHmde3GMJHbw/u4RRiuWSU/7W/DoqGCLh/Q0FSYBeKTgN81NesUJp/Vk0xk5sPdRo3JuHDzqsFe6+6NMkqo46h3/G6ChfAhgyUAlPwPgVgWR8j6RHbZWgxsRll2KwmPXxzqoSct9OSsUQP4cIO1PrvmbZv933cPYppjjLKOV9RQsmUClZmzRqShcKB1Xt3ITdywTLaG/mKo5SrlQdol3y3Nkee+lzOpl8O91gNdHbgoYhpM+5OSoar8=" env: global: diff --git a/tour-of-heroes/protractor-saucelabs.conf.js b/tour-of-heroes/protractor-saucelabs.conf.js index 5c94bd4..b2aa2f0 100644 --- a/tour-of-heroes/protractor-saucelabs.conf.js +++ b/tour-of-heroes/protractor-saucelabs.conf.js @@ -1,39 +1,11 @@ -var defaultConfig = require('./protractor.conf.js').config; - var testName = 'Tour of Heroes Smoke Tests' +var SpecReporter = require('jasmine-spec-reporter'); -var ciConfig = { - // Note that seleniumAddress must be unset in order for SauceLabs to work. - seleniumAddress: false, +exports.config = { sauceUser: process.env.SAUCE_USERNAME, sauceKey: process.env.SAUCE_ACCESS_KEY, - directConnect: false, - multiCapabilities: [{ - 'browserName': 'chrome', - 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER, - 'build': process.env.TRAVIS_BUILD_NUMBER, - 'name': testName, - 'version': '51', - 'selenium-version': '2.53.1', - 'chromedriver-version': '2.22', - 'platform': 'OS X 10.9' - }, { - 'browserName': 'firefox', - 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER, - 'build': process.env.TRAVIS_BUILD_NUMBER, - 'name': testName, - 'version': '44', - 'selenium-version': '2.53.1' - }, { - 'browserName': 'safari', - 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER, - 'build': process.env.TRAVIS_BUILD_NUMBER, - 'name': testName, - 'version': '9', - 'selenium-version': '2.44.0' // Use an old version because Safari has - // issues loading pages after 2.44. - }, { + capabilities: { 'browserName': 'internet explorer', 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER, 'build': process.env.TRAVIS_BUILD_NUMBER, @@ -41,8 +13,26 @@ var ciConfig = { 'version': '11', 'selenium-version': '2.53.1', 'platform': 'Windows 7' - }] -}; + }, -exports.config = Object.assign(defaultConfig, ciConfig); -console.log(exports.config); + allScriptsTimeout: 30000, + specs: [ + './e2e/**/*.e2e-spec.ts' + ], + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + useAllAngular2AppRoots: true, + beforeLaunch: function() { + require('ts-node').register({ + project: 'e2e' + }); + }, + onPrepare: function() { + jasmine.getEnv().addReporter(new SpecReporter()); + } +};