运行Protractor测试时出现TypeScript错误

时间:2018-02-02 20:30:38

标签: javascript angular typescript protractor

我有一小套量角器测试。在测试中,我有一些从公共基类扩展的页面对象类。在我的量角器配置中,我有:

specs: [
  './showcase/e2e/**/*.e2e-spec.ts'
]

如果我使用此配置运行Protractor,则运行所有测试。但是,如果我尝试运行单个测试,则会遇到错误。

我正在尝试使用此命令运行特定测试:

protractor --specs showcase/e2e/app/components/dropdown/dropdown.e2e-spec.ts

但后来我收到了一个错误:

Error: TSError: ⨯ Unable to compile TypeScript
showcase/e2e/shared/components/dropdown/dropdown.po.ts (3,32): Property 'setPrototypeOf' does not exist on type 'ObjectConstructor'. (2339)

以下是dropdown.po.ts的内容:

import { ExamplePage } from '../example.po';

export const COMPONENT_ID = 'dropdown';

export class DropdownPage extends ExamplePage {
  navigateTo() {
    this.navigateToComponentPage('dropdown');
  }
}

我必须缺少一些东西。当我尝试运行单个测试用例时,我知道为什么会出现此错误,但是当我运行所有内容时没有错误?我很难过。

3 个答案:

答案 0 :(得分:1)

您错过了在命令行中指定量角器conf:

protractor --specs showcase/e2e/app/components/dropdown/dropdown.e2e-spec.ts

正确的应该是:

protractor conf.js --specs showcase/e2e/app/components/dropdown/dropdown.e2e-spec.ts

答案 1 :(得分:0)

您应该运行*.js个文件而不是直接*.ts。在运行测试之前,请使用tsc将打字稿代码编译为javascript。

答案 2 :(得分:0)

我找到了必要的解决办法。

在这种情况下,我需要将以下内容添加到tsconfig.json

"lib": [
  "es2016",
  "dom"
]