diff --git a/.travis.yml b/.travis.yml index 9f36eb562..e9021b45b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,8 @@ language: node_js env: matrix: - - "TEST_SUITE=saucelabs BROWSER='firefox:19:Windows 2012'" - - "TEST_SUITE=saucelabs BROWSER='chrome::Windows 2008'" + - "BROWSER='firefox:19:Windows 2012'" + - "BROWSER='chrome::Windows 2008'" branches: only: - master @@ -12,6 +12,7 @@ branches: node_js: - "4.2.1" before_script: + - npm run-script lint - cp config.js.dist config.js - npm install - npm install bower diff --git a/TestSelenium.js b/TestSelenium.js index ece344cd2..cac4ffe66 100644 --- a/TestSelenium.js +++ b/TestSelenium.js @@ -1,14 +1,15 @@ -'use strict'; -const WebDriver = require("selenium-webdriver"); +/* global process */ +var WebDriver = require("selenium-webdriver"); +var Http = require("http"); -let driver; -if (process.env.SAUCE_USERNAME != undefined) { - const browserArray = process.env.BROWSER.split(':'); +var driver; +if (process.env.SAUCE_USERNAME !== undefined) { + var browserArray = process.env.BROWSER.split(':'); driver = new WebDriver.Builder().usingServer( 'http://'+ process.env.SAUCE_USERNAME+':'+process.env.SAUCE_ACCESS_KEY+'@ondemand.saucelabs.com:80/wd/hub' ).withCapabilities({ "tunnel-identifier": process.env.TRAVIS_JOB_NUMBER, - "build": process.env.TRAVIS_BUILD_NUMBER, + "build": process.env.TRAVIS_JOB_NUMBER, "username": process.env.SAUCE_USERNAME, "accessKey": process.env.SAUCE_ACCESS_KEY, }).forBrowser(browserArray[0], browserArray[1], browserArray[2]).build(); @@ -16,15 +17,36 @@ if (process.env.SAUCE_USERNAME != undefined) { driver = new WebDriver.Builder().withCapabilities({ browserName: "chrome" }).build(); } +var logSauceLink = function (cb) { + Http.request("https://saucelabs.com/rest/v1.1/" + process.env.SAUCE_USERNAME + + "/jobs?auto_only=true&full=true&limit=50&subaccounts=true", function (resp) { + var str = ''; + resp.on('data', function (chunk) { str += chunk; }); + resp.on('end', function () { + JSON.parse(str).jobs.forEach(function (j) { + var banner = new Array(80).join('='); + if (j.build === process.env.TRAVIS_JOB_NUMBER) { + console.log("\n\n\n" + banner); + console.log("SauceLabs Link: " + j.video_url.replace(/\/video\.flv$/), ''); + console.log(banner + "\n\n\n"); + } + }); + cb(); + }); + }); +}; + driver.get('http://localhost:3000/assert/'); -const report = driver.wait(WebDriver.until.elementLocated(WebDriver.By.className("report")), 5000); +var report = driver.wait(WebDriver.until.elementLocated(WebDriver.By.className("report")), 5000); report.getAttribute("class").then(function (cls) { driver.quit(); - if (!cls) { - throw new Error("cls is null"); - } else if (cls.indexOf("failure") !== -1) { - throw new Error("cls contains the word failure"); - } else if (cls.indexOf("success") === -1) { - throw new Error("cls does not contain the word success"); - } + logSauceLink(function () { + if (!cls) { + throw new Error("cls is null"); + } else if (cls.indexOf("failure") !== -1) { + throw new Error("cls contains the word failure"); + } else if (cls.indexOf("success") === -1) { + throw new Error("cls does not contain the word success"); + } + }); });