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
找到解决方案的运气并不好,已经解决了几个小时。
所以我有几个包含 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