当我尝试在BrowserStack
中运行我的测试套件时,我收到以下错误。
(function (exports, require, module, __filename, __dirname) { import {Contacts} from '../Contacts.po';
SyntaxError: Unexpected token import
at createScript (vm.js:74:10)
为什么它无法识别关键字导入? P.S注意:整个项目使用typescript开发,我已经将这个项目编译成了js然后运行我的测试套件。在本地它工作,但在browerstack我得到错误。我正在使用protractor
和jasmine
。
答案 0 :(得分:0)
您需要在编译期间为打字稿注册您的项目。将以下代码行添加到browserstack配置文件的启动前功能。
// Code to start browserstack local before start of test
beforeLaunch: function(){
require('ts-node').register({
project: './e2e/tsconfig.e2e.json'
});
console.log("Connecting local");
return new Promise(function(resolve, reject){
exports.bs_local = new browserstack.Local();
exports.bs_local.start({'key': exports.config.capabilities['browserstack.key'] }, function(error) {
if (error) return reject(error);
console.log('Connected. Now testing...');
resolve();
});
});
}
以下是配置tsconfig.e2e.json文件的方法。
{
"extends": "../tsconfig.json",
"compileOnSave": true,
"compilerOptions": {
"outDir": "../out-tsc/e2e",
"module": "commonjs",
"target": "es5",
"types":[
"jasmine",
"node"
]
}
}
这可以解决您的问题。感谢。