diff --git a/.gitignore b/.gitignore index f854f3f..ec613bb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules .DS_Store package-lock.json +local.log diff --git a/README.md b/README.md index fa590c5..383c16f 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,8 @@ * Update `.env` file with your [BrowserStack Username and Access Key](https://www.browserstack.com/accounts/settings). ## Running your tests -* To run a single test, run `npm run single` +* To run tests, run `npm run parallel` * To run local tests, run `npm run local` -* To run parallel tests, run `npm run parallel` Understand how many parallel sessions you need by using our [Parallel Test Calculator](https://www.browserstack.com/automate/parallel-calculator?ref=github) diff --git a/package.json b/package.json index 5dc8a3f..8684933 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "webdriverio": "^7.17.4" }, "dependencies": { - "browserstack-local": "^1.4.8", + "browserstack-local": "^1.5.2", "dotenv": "^16.0.0" } } diff --git a/src/test/local/codecept.conf.js b/src/test/local/codecept.conf.js index 8cb9d8c..bb469c0 100644 --- a/src/test/local/codecept.conf.js +++ b/src/test/local/codecept.conf.js @@ -1,5 +1,6 @@ const browserstack = require("browserstack-local"); require('dotenv').config() +const util = require('util'); const BROWSERSTACK_USERNAME = process.env.BROWSERSTACK_USERNAME const BROWSERSTACK_ACCESS_KEY = process.env.BROWSERSTACK_ACCESS_KEY @@ -7,6 +8,7 @@ const BROWSERSTACK_ACCESS_KEY = process.env.BROWSERSTACK_ACCESS_KEY exports.config = { tests: './*_test.js', output: './output', + timeout: 120, helpers: { WebDriver: { url: 'https://bstackdemo.com', @@ -20,8 +22,9 @@ exports.config = { "browser_version": "latest", "browserstack.local": "true", "project": "Codecept + WebdriverIO", - "build": "Local_Execution", - "name": "Local Test", + "build": "browserstack-build-1", + "name": "BStack local codecept-js", + "browserstack.source": "codecept-js:sample-selenium-3:v1.1" } //For W3C-based scripts, use the following capabilties: // capabilities: { @@ -30,22 +33,26 @@ exports.config = { // "osVersion": "10", // "local": "true", // "projectName": "Codecept + WebdriverIO", - // "buildName": "Local_Execution", - // "sessionName": "Local Test", + // "buildName": "browserstack-build-1", + // "sessionName": "BStack local codecept-js", + // "source": "codecept-js:sample-selenium-3:v1.1" // }, // "browserVersion": "latest", // } } }, - bootstrap: function () { + bootstrap: async function () { console.log("Connecting Local"); exports.bs_local = new browserstack.Local(); - exports.bs_local.start({ 'key': BROWSERSTACK_ACCESS_KEY }, function (error) { - if (error) return error; + exports.bs_local.start_async = util.promisify(exports.bs_local.start); + try { + await exports.bs_local.start_async({ 'key': BROWSERSTACK_ACCESS_KEY }); console.log('Connected. Now testing...'); - - }); + } catch(er) { + console.log('Local start failed with error', er); + return; + } }, teardown: function () { diff --git a/src/test/parallel/codecept.conf.js b/src/test/parallel/codecept.conf.js index da597f7..fbec334 100644 --- a/src/test/parallel/codecept.conf.js +++ b/src/test/parallel/codecept.conf.js @@ -6,6 +6,7 @@ const BROWSERSTACK_ACCESS_KEY = process.env.BROWSERSTACK_ACCESS_KEY exports.config = { tests: './*_test.js', output: './output', + timeout: 120, helpers: { WebDriver: { url: 'https://bstackdemo.com', @@ -27,8 +28,9 @@ exports.config = { "os_version": "Catalina", "browser_version": "latest", "project": "Codecept + WebdriverIO", - "build": "Parallel_Execution", - "name": "Parallel Test Safari", + "build": "browserstack-build-1", + "name": "BStack parallel codecept-js 1", + "browserstack.source": "codecept-js:sample-selenium-3:v1.1", "browserstack.debug": "true", 'browserstack.networkLogs': 'true', }, @@ -39,8 +41,9 @@ exports.config = { "os": "OS X", "osVersion": "Catalina", "projectName": "Codecept + WebdriverIO", - "buildName": "Parallel_Execution", - "sessionName": "Parallel Test Safari", + "buildName": "browserstack-build-1", + "sessionName": "BStack parallel codecept-js 1", + "source": "codecept-js:sample-selenium-3:v1.1" "debug" : "true", "networkLogs" : "true", }, @@ -57,8 +60,9 @@ exports.config = { "os_version": "10", "browser_version": "latest", "project": "Codecept + WebdriverIO", - "build": "Parallel_Execution", - "name": "Parallel Test Firefox", + "build": "browserstack-build-1", + "name": "BStack parallel codecept-js 2", + "browserstack.source": "codecept-js:sample-selenium-3:v1.1", "browserstack.debug": "true", 'browserstack.networkLogs': 'true', }, @@ -69,8 +73,9 @@ exports.config = { "os": "Windows", "osVersion": "10", "projectName": "Codecept + WebdriverIO", - "buildName": "Parallel_Execution", - "sessionName": "Parallel Test Firefox", + "buildName": "browserstack-build-1", + "sessionName": "BStack parallel codecept-js 2", + "source": "codecept-js:sample-selenium-3:v1.1" "debug" : "true", "networkLogs" : "true", }, diff --git a/src/test/single/codecept.conf.js b/src/test/single/codecept.conf.js index e1f0d09..3cc6d54 100644 --- a/src/test/single/codecept.conf.js +++ b/src/test/single/codecept.conf.js @@ -5,6 +5,7 @@ const BROWSERSTACK_ACCESS_KEY = process.env.BROWSERSTACK_ACCESS_KEY exports.config = { tests: './*_test.js', output: './output', + timeout: 120, helpers: { WebDriver: { url: 'https://bstackdemo.com', @@ -17,8 +18,9 @@ exports.config = { "os_version": "10", "browser_version": "latest", "project": "Codecept + WebdriverIO", - "build": "Single_Execution", - "name": "Single Test Edge", + "build": "browserstack-build-1", + "name": "BStack single codecept-js", + "browserstack.source": "codecept-js:sample-selenium-3:v1.1", "browserstack.debug": "true", 'browserstack.networkLogs': 'true', } @@ -29,8 +31,9 @@ exports.config = { "os": "Windows", "osVersion": "10", "projectName": "Codecept + WebdriverIO", - "buildName": "Single_Execution", - "sessionName": "Single Test Edge", + "buildName": "browserstack-build-1", + "sessionName": "BStack single codecept-js", + "source": "codecept-js:sample-selenium-3:v1.1" "debug" : "true", "networkLogs" : "true", },