Last active
August 5, 2016 15:26
-
-
Save rebers/2addd311076ad4e8620560b8c5723b77 to your computer and use it in GitHub Desktop.
Nightwatch.js BrowserStack Runner
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 1. start the dev server using production config | |
process.env.NODE_ENV = 'testing'; | |
const server = require('../../build/dev-server.js'); | |
const spawn = require('cross-spawn'); | |
const browserStack = require('browserstack-local'); | |
const testEnv = require('../../config/test.env.js'); | |
// For more information on Nightwatch's config file, see | |
// http://nightwatchjs.org/guide#settings-file | |
let opts = process.argv.slice(2); | |
if (opts.indexOf('--config') === -1) { | |
opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js']); | |
} | |
// Default environment: Chrome | |
// Override the environment flag, for example: `npm run e2e -- --env chrome,firefox` | |
if (opts.indexOf('--env') === -1) { | |
opts = opts.concat(['--env', 'chrome']); | |
} | |
const browserStackTunnel = new browserStack.Local(); | |
browserStackTunnel.start({ | |
key: testEnv.BROWSERSTACK_ACCESS_KEY || 'BROWSERSTACK_ACCESS_KEY', | |
}, (error) => { | |
if (error) { | |
browserStackTunnel.stop(); | |
throw error; | |
} | |
const runner = spawn('./node_modules/.bin/nightwatch', opts, { | |
stdio: 'inherit', | |
}); | |
runner.on('exit', (code) => { | |
// Code to stop browserstack local after end of single test | |
browserStackTunnel.stop(); | |
server.close(); | |
process.exit(code); | |
}); | |
runner.on('error', (err) => { | |
browserStackTunnel.stop(); | |
server.close(); | |
throw err; | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment