在用typescript开发的Angular 4项目中配置BrowserStack

时间:2017-08-17 10:40:59

标签: angular typescript jasmine protractor browserstack

当我尝试在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我得到错误。我正在使用protractorjasmine

1 个答案:

答案 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"
 ]
}
}

这可以解决您的问题。感谢。