2017-08-17 88 views
0

当我尝试在中运行我的测试套件时出现以下错误。在打字稿中开发的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我收到错误。我正在使用protractorjasmine

+1

不应该是BrowserStack的问题,因为导入语句失败。这意味着你的编译器/解释器无法理解它。如果这是在本地工作,请分享您当地的硒安装详细信息(硒服务器版本,Web驱动程序版本,网页浏览器详细信息)。 –

回答

0

您需要在编译打字稿时注册您的项目。将以下代码行添加到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" 
] 
} 
} 

这应该可以解决您的问题。谢谢。