【问题标题】:Writing e2e tests (Protractor, Jasmine) using typescript使用 typescript 编写 e2e 测试(量角器、Jasmine)
【发布时间】:2017-02-11 11:04:00
【问题描述】:

我应该在package.json 中添加什么并在每个e2e.spec.ts 文件中导入才能有这种可能性?

目前,当我将 e2e.spec.js 更改为 e2e.spec.ts 时,文件已编译,但出现 Cannot find name 'browser' 等错误。

我试过了

import {browser, element, by} from 'protractor';

但是在编译过程中我遇到了错误

node_modules/protractor/built/browser.d.ts(1,1): error TS1084: 
Invalid 'reference' directive syntax.

我的package.json(仅重要部分)

{
  "scripts": {
    "lite": "lite-server",
    "tsc": "tsc",
    "typings": "typings",
    "pree2e": "npm run webdriver:update",
    "webdriver:update": "webdriver-manager update"
  },
  "dependencies": {
    "@angular/common": "~2.0.1",
    "@angular/compiler": "~2.0.1",
    "@angular/core": "~2.0.1",
    "@angular/forms": "~2.0.1",
    "@angular/http": "~2.0.1",
    "@angular/platform-browser": "~2.0.1",
    "@angular/platform-browser-dynamic": "~2.0.1",
    "@angular/router": "~3.0.1",
    "@angular/upgrade": "~2.0.1",
    "angular2-in-memory-web-api": "0.0.20",
    "core-js": "^2.4.1",
    "reflect-metadata": "^0.1.8",
    "rxjs": "5.0.0-beta.12",
    "systemjs": "0.19.39",
    "zone.js": "^0.6.25"
  },
  "devDependencies": {
    "canonical-path": "0.0.2",
    "concurrently": "^3.0.0",
    "jasmine": "^2.5.2",
    "jasmine-fail-fast": "^2.0.0",
    "karma": "^1.3.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-jasmine": "^1.0.2",
    "lite-server": "^2.2.2",
    "protractor": "^4.0.8",
    "protractor-jasmine2-screenshot-reporter": "^0.3.2",
    "typescript": "^1.8.10",
    "typings": "^1.4.0"
  }
}

和示例测试套件

// import {browser, element, by} from 'protractor';
describe('Test suite related with health tab', () => {
    beforeEach(function () {
        browser.get('');
    });
}

【问题讨论】:

标签: angular typescript protractor


【解决方案1】:

从 Protractor 4.0.5 开始,他们使用 TypeScript 2.0.x。我刚刚升级了我的项目以使用这些,这需要一些工作——例如,你不再需要打字了(尽管我认为你仍然可以使用它)。使用您拥有的量角器导入。当我这样做时,我得到了你在构建时遇到的错误。我正在使用 Visual Studio 2015 Pro - 我一直在使用 TypeScript 1.8.3 扩展。我将此更改为 TypeScript 2.0.3(我的项目正在使用)并且构建错误消失了。

如果您想将类型转换为@types,这可能会有所帮助 TypeScript typings in NPM @types org packages

【讨论】:

    【解决方案2】:

    我必须将 typescript 升级到 >= 2.0.0 并将 protractor 降级到 3.3。那我就不用向e2e-spec.ts添加任何导入了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-11
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 2018-10-22
      相关资源
      最近更新 更多