Typescript Jasmine 规范编译删除了 import 语句 - Visual Studio

Typescript Jasmine Spec compilation removes import statement - Visual Studio

找到解决方案的运气并不好,已经解决了几个小时。

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

在 Visual Studio 中,我正在导入 Jasmine 作为参考 (nu-get),并通过输入将其拉入,并使用 Chutzpah 扩展使 spec.js 文件显示在Visual studio 测试资源管理器。这一切都很好,最基本的测试(true == true 和 true == false)都是 return 预期的输出。

当我尝试将我的 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 未定义。我真的不明白为什么要在这里删除导入,因为我所有其他 angular 2 components/services/models/etc 都是使用完全相同的 gulp 脚本编译的,并且导入会继续进行。

这是我尝试过但没有成功的其他一些方法。

现在打字稿中似乎已弃用 -

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

不行,编译错误-

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

重申一下我的环境-

VS - Visual Studio

VS Chutzpah searches for .spec.js test cases

VS Jasmine reference in project

Typings Jasmine

Gulp compiles TS to JS - working

错误 -

Gulp compiles test specs to JS and imports are removed

感谢您的宝贵时间。

您有 chutzpah.json 文件设置吗?你看过 Chutzpah Angular2 示例了吗?这可能会对 bootstrap 有帮助并让你开始:https://github.com/mmanela/chutzpah/tree/master/Samples/Angular2/Basic