【发布时间】:2016-12-06 19:56:28
【问题描述】:
没有太多运气找到解决这个问题的方法,并且已经解决了几个小时。
所以我有几个文件夹,其中包含 Angular 2 组件/模块/服务。我正在为 Jasmine 测试规范添加一个新文件夹来测试生成的 JS 代码。
在 Visual Studio 中,我将 Jasmine 作为参考 (nu-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的typescript编译没有报错。当我尝试运行测试时出现问题,生成的 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 组件/服务/模型/等都是使用完全相同的 gulp 脚本编译的,并且导入会继续。
这是我尝试过的其他一些事情,但没有成功。
现在打字稿中似乎已弃用 -
/// <reference path="../references.ts" />
不起作用,编译错误-
import foo = require("../Services/testing.service");
var bar = foo;
只是重申我的环境-
VS - Visual Studio
VS Chutzpah 搜索 .spec.js 测试用例
项目中的VS Jasmine参考
打字茉莉花
Gulp 将 TS 编译为 JS - 工作
错误 -
Gulp 将测试规范编译为 JS 并移除导入
感谢您的宝贵时间。
【问题讨论】:
标签: visual-studio angular typescript jasmine chutzpah