Success! Ashwin Gonsalves over at BrowserStack got me headed in the right direction.
I needed to set baseURL and ensure my server was up and running before calling the browserStackTunnel task.
my conf file looks like:
// An example configuration file.
var bsConfig = {
'build': 'E2E Tests - ' + new Date().toISOString(),
'project': 'Media Relations',
'debug': true
};
exports.config = {
// The address of a running selenium server.
seleniumAddress: 'http://hub.browserstack.com/wd/hub',
baseUrl: 'http://localhost:9000',
allScriptsTimeout: 55000,
// Capabilities to be passed to the webdriver instance.
multiCapabilities: [{
'browserName': 'firefox',
'os': 'Windows',
'build': bsConfig.build,
'project': bsConfig.project,
'browserstack.debug': bsConfig.debug,
'browserstack.tunnel': 'true',
'browserstack.user': process.env.BROWSER_STACK_USERNAME,
'browserstack.key': process.env.BROWSER_STACK_ACCESS_KEY
},
{
'browserName': 'IE',
'browser_version': '11.0',
'os': 'Windows',
'build': bsConfig.build,
'project': bsConfig.project,
'browserstack.debug': bsConfig.debug,
'browserstack.tunnel': 'true',
'browserstack.user': process.env.BROWSER_STACK_USERNAME,
'browserstack.key': process.env.BROWSER_STACK_ACCESS_KEY
},
{
'browserName': 'safari',
'os': 'OS X',
'build': bsConfig.build,
'project': bsConfig.project,
'browserstack.debug': bsConfig.debug,
'browserstack.tunnel': 'true',
'browserstack.user': process.env.BROWSER_STACK_USERNAME,
'browserstack.key': process.env.BROWSER_STACK_ACCESS_KEY
},
{
'browserName': 'chrome',
'os': 'Windows',
'build': bsConfig.build,
'project': bsConfig.project,
'browserstack.tunnel': bsConfig.debug,
'browserstack.user': process.env.BROWSER_STACK_USERNAME,
'browserstack.key': process.env.BROWSER_STACK_ACCESS_KEY
},
{
'browserName': 'chrome',
'os': 'OS X',
'os_version': 'Mountain Lion',
'build': bsConfig.build,
'project': bsConfig.project,
'browserstack.debug': bsConfig.debug,
'browserstack.tunnel': 'true',
'browserstack.user': process.env.BROWSER_STACK_USERNAME,
'browserstack.key': process.env.BROWSER_STACK_ACCESS_KEY
}],
// Spec patterns are relative to the current working directly when
// protractor is called.
specs: ['test/e2e/spec/admin/**/*.js'],
// Options to be passed to Jasmine-node.
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 90000,
browserNoActivityTimeout: 50000,
captureTimeout: 60000
}
};
npm install -g browserstack-webdriver
exports.config = { capabilities: { 'browserstack.user' : 'my_user_name', 'browserstack.key' : 'my_secret_key',
// Needed for testing localhost 'browserstack.local' : 'true',
// Settings for the browser you want to test 'browser' : 'Chrome', 'browser_version' : '36.0', 'os' : 'OS X', 'os_version' : 'Mavericks', 'resolution' : '1024x768' }, // Browserstack's selenium server address seleniumAddress: 'http://hub.browserstack.com/wd/hub',
// Pattern for finding spec files specs: ['test/**/*.spec.js']}./BrowserStackLocal your_secret_key localhost,3000,0
protractor protractor.conf.js