From c11e4478e063e2cc6286b4b7b69e7984e08a183c Mon Sep 17 00:00:00 2001 From: Luke Coy Date: Thu, 5 Apr 2018 23:42:12 -0700 Subject: [PATCH] [CLEANUP beta] #16391 Cleaning up the test output --- bin/run-tests.js | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/bin/run-tests.js b/bin/run-tests.js index d30695bf389..ad9300e3c92 100755 --- a/bin/run-tests.js +++ b/bin/run-tests.js @@ -14,6 +14,7 @@ var path = require('path'); var finalhandler = require('finalhandler'); var http = require('http'); var serveStatic = require('serve-static'); +var puppeteer = require('puppeteer'); // Serve up public/ftp folder. var serve = serveStatic('./dist/', { index: ['index.html', 'index.htm'] }); @@ -28,6 +29,9 @@ var PORT = 13141; // Listen. server.listen(PORT); +// Cache the Chrome browser instance when launched for new pages. +var browserPromise; + function run(queryString) { return new RSVP.Promise(function(resolve, reject) { var url = 'http://localhost:' + PORT + '/tests/?' + queryString; @@ -40,9 +44,11 @@ function runInBrowser(url, retries, resolve, reject) { console.log('Running Chrome headless: ' + url); - var puppeteer = require('puppeteer'); + if (!browserPromise) { + browserPromise = puppeteer.launch(); + } - puppeteer.launch().then(function(browser) { + browserPromise.then(function(browser) { browser.newPage().then(function(page) { /* globals window */ var crashed; @@ -136,17 +142,17 @@ function runInBrowser(url, retries, resolve, reject) { ' failed.' ); - if (typeof window.callPhantom === 'function') { - window.callPhantom({ - name: 'QUnit.done', - data: result, - }); - } + window.callPhantom({ + name: 'QUnit.done', + data: result, + }); }); }); }; page.exposeFunction('callPhantom', function(message) { + page.close(); + if (message && message.name === 'QUnit.done') { result = message.data; var failed = !result || !result.total || result.failed; @@ -177,11 +183,11 @@ function runInBrowser(url, retries, resolve, reject) { reject(result); } } + }).then(function() { + return page.evaluateOnNewDocument(addLogging); + }).then(function() { + page.goto(url, { timeout: 900 }); }); - - page.evaluateOnNewDocument(addLogging); - - page.goto(url, { timeout: 900 }); }); }); }