在打字稿中开发的Angular 4项目中配置BrowserStack
问题描述:
当我尝试在中运行我的测试套件时出现以下错误。在打字稿中开发的Angular 4项目中配置BrowserStack
(function (exports, require, module, __filename, __dirname) { import {Contacts} from '../Contacts.po';
SyntaxError: Unexpected token import
at createScript (vm.js:74:10)
为什么不识别关键字导入?注意:使用typescript开发的整个项目和我已经将这个项目编译成js然后运行我的测试套件。在本地工作,但在browerstack我收到错误。我正在使用protractor
和jasmine
。
答
您需要在编译打字稿时注册您的项目。将以下代码行添加到browserstack配置文件的before launch函数中。
// 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"
]
}
}
这应该可以解决您的问题。谢谢。
不应该是BrowserStack的问题,因为导入语句失败。这意味着你的编译器/解释器无法理解它。如果这是在本地工作,请分享您当地的硒安装详细信息(硒服务器版本,Web驱动程序版本,网页浏览器详细信息)。 –