From 08a86ed7e4246a7bb705adfc482ced95c1ad966b Mon Sep 17 00:00:00 2001 From: Matt Gaunt Date: Fri, 18 Nov 2016 06:55:05 -0800 Subject: [PATCH 1/4] Adding reesilience to tests --- packages/sw-offline-google-analytics/test/automated-suite.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/sw-offline-google-analytics/test/automated-suite.js b/packages/sw-offline-google-analytics/test/automated-suite.js index f82e2b74d..48fa0bfdd 100644 --- a/packages/sw-offline-google-analytics/test/automated-suite.js +++ b/packages/sw-offline-google-analytics/test/automated-suite.js @@ -32,12 +32,14 @@ require('chromedriver'); require('operadriver'); const TIMEOUT = 10 * 1000; +const RETRIES = 3; const configureTestSuite = function(browser) { let globalDriverReference = null; let baseTestUrl; describe(`sw-offline-google-analytics Test Suite with (${browser.getPrettyName()} - ${browser.getVersionNumber()})`, function() { + this.retries(RETRIES); this.timeout(TIMEOUT); // Set up the web server before running any tests in this suite. From d25c1d4e75c874014b31cfdc775544595f04530c Mon Sep 17 00:00:00 2001 From: Matt Gaunt Date: Fri, 18 Nov 2016 07:01:04 -0800 Subject: [PATCH 2/4] Adding retries for sw-appcache behavior as well --- packages/sw-appcache-behavior/test/automated-suite.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/sw-appcache-behavior/test/automated-suite.js b/packages/sw-appcache-behavior/test/automated-suite.js index d6125257b..1ddb8fb92 100644 --- a/packages/sw-appcache-behavior/test/automated-suite.js +++ b/packages/sw-appcache-behavior/test/automated-suite.js @@ -40,6 +40,7 @@ const fsePromise = promisify('fs-extra'); const testServer = new swTestingHelpers.TestServer(); const expect = chai.expect; const TIMEOUT = 10 * 1000; +const RETRIES = 3; let tempDirectory = path.join(__dirname, 'end-to-end-caching', 'temp'); // Helper method to generate the text of an App Cache manifest with a @@ -76,6 +77,7 @@ const configureTestSuite = function(browser) { describe(`sw-appcache-behavior Test Suite with (${browser.getPrettyName()} - ${browser.getVersionNumber()})`, function() { this.timeout(TIMEOUT); + this.retries(RETRIES); // Set up the web server before running any tests in this suite. before(function() { From fcea1677946ac2c9ac0ee359349f23fbb6aa1498 Mon Sep 17 00:00:00 2001 From: Matt Gaunt Date: Fri, 18 Nov 2016 07:04:50 -0800 Subject: [PATCH 3/4] Fixing multiple windows on retires --- .../sw-offline-google-analytics/test/automated-suite.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/sw-offline-google-analytics/test/automated-suite.js b/packages/sw-offline-google-analytics/test/automated-suite.js index 48fa0bfdd..4a8de978c 100644 --- a/packages/sw-offline-google-analytics/test/automated-suite.js +++ b/packages/sw-offline-google-analytics/test/automated-suite.js @@ -51,9 +51,15 @@ const configureTestSuite = function(browser) { // Kill the web server once all tests are complete. after(function() { + return testServer.killServer(); + }); + + afterEach(function() { + this.timeout(6000); + return seleniumAssistant.killWebDriver(globalDriverReference) .then(() => { - return testServer.killServer(); + globalDriverReference = null; }); }); From 98c2dda2bf6cdd79de3fa84b1a3e19617b285e7d Mon Sep 17 00:00:00 2001 From: Matt Gaunt Date: Fri, 18 Nov 2016 08:27:15 -0800 Subject: [PATCH 4/4] Moving driver get to a test --- .../test/automated-suite.js | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/sw-appcache-behavior/test/automated-suite.js b/packages/sw-appcache-behavior/test/automated-suite.js index 1ddb8fb92..85f5eca38 100644 --- a/packages/sw-appcache-behavior/test/automated-suite.js +++ b/packages/sw-appcache-behavior/test/automated-suite.js @@ -92,13 +92,6 @@ const configureTestSuite = function(browser) { return generateInitialManifests() - .then(() => { - return browser.getSeleniumDriver(); - }) - .then((driver) => { - globalDriverReference = driver; - globalDriverReference.manage().timeouts().setScriptTimeout(TIMEOUT); - }) .then(() => { return testServer.startServer('.'); }) @@ -116,7 +109,15 @@ const configureTestSuite = function(browser) { return testServer.killServer(); }) .then(() => { - // return fsePromise.remove(tempDirectory); + return fsePromise.remove(tempDirectory); + }); + }); + + it('should be able to get a global driver.', function() { + return browser.getSeleniumDriver() + .then((driver) => { + globalDriverReference = driver; + globalDriverReference.manage().timeouts().setScriptTimeout(TIMEOUT); }); }); @@ -180,7 +181,8 @@ const configureTestSuite = function(browser) { it('should cache a master entry for initial navigation', function() { return globalDriverReference.executeAsyncScript((callback) => { window.caches.match(window.location).then(callback); - }).then((match) => { + }) + .then((match) => { expect(match).to.be.ok; }); });