【问题标题】:Angular 2 Karma Unit Tests Cannot Find NameAngular 2 Karma 单元测试找不到名称
【发布时间】:2017-03-25 02:29:33
【问题描述】:

我有一个 Angular 2 项目,我想在使用 Karma、Jasmine 和 Webpack 时添加单元测试。但是,在设置完之后,我遇到了一个问题,即测试编译和运行成功,但是控制台输出记录了大量来自 TypeScript 的错误,说它找不到某些 jasmine 和 es6 类的名称,如下所示:

我无法弄清楚为什么会发生这种情况,因为我遇到的所有类似问题的案例都是使用

【问题讨论】:

    标签: angular typescript jasmine webpack karma-jasmine


    【解决方案1】:

    显然编译器以某种方式正确地找到了类型(因为单元测试在错误之后运行良好)

    这是不正确的。实际上编译器没有找到它们。它工作正常,因为您已将 jasmine (JS) 和 es6-shim (JS) 添加到 karma 运行时。它找不到类型(因此出现编译错误),但在运行时环境中存在 JS 文件。

    确保你有

    1. 已安装 @types/jasmine@types/core-js
    2. 将以下内容添加到您的tsconfig.json - compilerOptions

      "typeRoots": [
          "./node_modules/@types/"
      ]
      
      // works for me without it, but maybe also
      "types": [
          "jasmine",
          "core-js"
      ]
      

    【讨论】:

    • 很高兴知道它可以/找不到哪些文件。但是,这两种类型已经通过 npm 安装,并且我已经按照指示设置了 typeRoots 和 types 属性。
    • 那我不确定。
    • 出了什么问题?
    • 睡了一会儿,今天早上我再次接近它,发现我在 tsconfig 中的不同位置有类型数组,在 compilerOptions 之外。感谢您指出配置需要在 compilerOptions 部分。
    猜你喜欢
    • 2016-12-25
    • 2017-12-30
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多