Typescript Jasmine Spec编译删除import语句 - Visual Studio

时间:2016-12-06 19:56:28

标签: visual-studio angular typescript jasmine chutzpah

没有太多运气找到解决方案并且已经使用了几个小时。

所以我有几个包含Angular 2组件/模块/服务的文件夹。我正在为Jasmine测试规范添加一个新文件夹来测试我生成的JS代码。

在Visual Studio中,我将Jasmine作为参考(n​​u-get)导入,并通过打字输入,并使用Chutzpah扩展程序将spec.js文件显示在Visual Studio测试资源管理器中。这一切都很好,最基本的测试(true == true和true == false)都返回预期的输出。

当我尝试将Angular 2应用程序中的服务添加到规范中以测试它时,会出现此问题。这是代码......

import { TestingService } from "../Services/testing.service";

describe("TestingService", function () {
    let TestingService: TestingService;
    TestingService.Testing("TEST"); 

    it("testing is working", function () {
        expect(true).toBe(true);
    });
});

代码编译正确,在从TS到JS的打字稿编译过程中不会抛出任何错误。当我尝试运行测试时,会出现问题,生成的JS代码如下所示......

"use strict";

describe("TestingService", function () {
    var TestingService;
    TestingService.Testing("TEST");
    it("testing is working", function () {
        expect(true).toBe(true);
    });
});

正如您所看到的,编译器已删除了TS代码中的测试服务导入,并且测试用例错误表明TestService.Testing未定义。我真的不明白为什么导入被删除了,因为所有其他的角度2组件/服务/模型/等都使用完全相同的gulp脚本进行编译,导入结转。

以下是我尝试过的其他一些没有成功的事情。

现在看起来在打字稿中被弃用 -

/// <reference path="../references.ts" />

不起作用,编译错误 -

import foo = require("../Services/testing.service"); var bar = foo;

重申我的环境 -

  

VS - Visual Studio

     

VS Chutzpah搜索.spec.js测试用例

     

项目中的VS Jasmine引用

     

打字Jasmine

     

Gulp编译TS到JS - 工作

错误 -

  

Gulp将测试规范编译为JS并删除导入

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

你有chutzpah.json文件设置吗?你看过Chutzpah Angular2样本吗?这可能有助于引导您并让您入门:https://github.com/mmanela/chutzpah/tree/master/Samples/Angular2/Basic