I am using browser stack plugin in Jenkins for e2e testing using protractor. E2e is working fine locally but when deployed in Jenkins run e2e test getting the following error.
Connecting local error { LocalError: Could not connect to Files!
at C:\Program Files (x86)\Jenkins\workspace\Angular UI Toolkit\node_modules \browserstack-local\lib\Local.js:57:20
at ChildProcess.exithandler (child_process.js:197:7)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at maybeClose (internal/child_process.js:877:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
name: 'LocalError',
message: 'Could not connect to Files!',
extra: undefined }
This is my browser stack.config file.
var browserstack = require('browserstack-local');
exports.config = {
'seleniumAddress': 'http://hub-cloud.browserstack.com/wd/hub',
baseUrl: 'http://localhost:3000/',
ignoreSynchronization: false,
framework: 'jasmine',
allScriptsTimeout: 110000,
getPageTimeout: 50000,
jasmineNodeOpts: {
// showTiming: true,
showColors: true,
isVerbose: false,
includeStackTrace: false,
defaultTimeoutInterval: 5000000
},
specs: [
'./dist/demo-app/**/*.e2e-spec.js'
],
exclude: [],
'capabilities': {
'browserstack.user': 'username',
'browserstack.key': 'key',
'browserstack.local': true,
'browserstack.localIdentifier':'test123',
'os': 'Windows',
'os_version': '8.1',
'browserName': 'IE',
'browser_version': '11.0'
},
// Code to start browserstack local before start of test
beforeLaunch: function(){
console.log("Connecting local");
return new Promise(function(resolve, reject){
exports.bs_local_args = {
key: exports.config.capabilities['browserstack.key'],
localIdentifier:exports.config.capabilities['browserstack.localIdentifier'],
force: true
};
exports.bs_local = new browserstack.Local();
console.log('exports.bs_local BROWSERSTACK_USERNAME...',process.env.BROWSERSTACK_USERNAME);
console.log('exports.bs_local...',exports.bs_local);
exports.bs_local.start(exports.bs_local_args, function(error) {
if (error){
console.log("Connecting local error",error);
return reject(error);
}
console.log('Connected. Now testing...');
resolve();
});
});
},
// Code to stop browserstack local after end of test
afterLaunch: function(){
return new Promise(function(resolve, reject){
exports.bs_local.stop(resolve);
});
},
useAllAngular2AppRoots: true
};