Angular 2 Karma单元测试无法找到名称

时间:2016-11-10 22:29:33

标签: angular typescript jasmine webpack karma-jasmine

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

enter image description here

我无法弄清楚为什么会发生这种情况,因为我遇到类似问题的所有情况都在使用< TypeScript 2.0,所以问题通常与打字有关。在我的情况下,我正在运行TypeScript 2.0.8,并通过npm @types使用新样式进行打字。显然,编译器在某种程度上正确地找到了类型(因为单元测试在错误之后运行正常),同时仍然说它们不存在。有没有人以前遇到过这个问题并且知道解决方案?

1 个答案:

答案 0 :(得分:3)

  

显然编译器在某种程度上正确地找到了类型(因为单元测试在错误之后运行正常)

这是不正确的。实际上编译器找到它们。它工作正常,因为你已经将茉莉(JS)和es6-shim(JS)添加到业力运行时。它无法找到输入(因此编译错误)但在运行时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"
    ]