5

可能有三个人在做我正在做的事情,但这里有:

  • 视觉工作室 2012
  • 最新的网络要点
  • 打字稿项目
  • AngularJS 框架
  • 使用 Jasmine 运行 Chutzpah 测试

在为 Chutzpah 创建测试时,我不仅需要添加对我的打字稿文件的引用,还需要添加对我正在使用的 javascript 库的引用。例如:

// Typescript References (for tsc)
/// <reference path="../ref/angular-1.0.d.ts" />

// JavaScript references (for chutzpah)
/// <reference path="../lib/angular.min.js" />

// TS references for what we're actually testing...
/// <reference path="../src/modules.ts" />

使用此设置,我的打字稿编写的 jasmine 测试运行良好。然而,angular.min.js 文件正在用数百条投诉填满我的错误列表。这使得无法找到打字稿语法检查器报告的错误。

如果我删除对 angular.min.js 的引用,那么 Chutzpah 将无法运行,因为我的代码依赖于库。

有没有办法强制 Visual Studio 忽略特定 JavaScript 文件引用中的错误?

4

4 回答 4

3

这个问题现在在Chutzpah 2.4中得到解决。

Chutzpah 具体参考

随着几个版本前添加了 TypeScript 支持,一些人报告了在 VS 中将 Chutzpah 与 TypeScript 插件一起使用时出现的问题。出现问题是因为 TypeScript 和 Chutzpah 都将注释用于不同的目的。为了解决这个问题,Chutzpah 现在支持两种引用依赖文件的方法。

  1. 现有的通用方式/// <reference path="foo.js" />

  2. 新的 Chutzpah 特定方式/// <chutzpah_reference path="foo.js" />

使用后者将使 Chutzpah 了解您的依赖关系图,并且不应混淆 TypeScript 编译器。

于 2013-04-28T16:59:37.817 回答
2

这是 Chutzpah 的一个错误,开发人员现在似乎已经意识到:

http://chutzpah.codeplex.com/discussions/404083#post1008911

于 2013-03-01T16:26:56.433 回答
0

您在这里遇到的问题是您包含一个 .js 文件作为参考。
您应该只使用 .ts 文件作为参考。

包含 .js 文件会导致 TypeScript 将其视为 typescript 文件,因此会出现错误。
查看 DefinetelyTyped 并将 angular.min.js 切换到 Angular.d.ts 文件以允许您的 TypeScript 编译通过。

于 2013-02-07T14:44:19.680 回答
0

我遇到了同样的问题,茉莉花测试需要 /// 注释才能运行。就我而言,它们是必需的,因为我正在使用 Resharper 并且希望能够利用他们的 javascript 测试运行程序。

该解决方案(尽管并不理想)基于http://typescript.codeplex.com/workitem/466上的讨论。从 v9.1.1 typescript 开始,编译器会忽略在“=”之后包含空格的引用。所以,而不是使用

/// <reference path="~/somefile.js"/>

你改用这个:

/// <reference path= "~/somefile.js"/>

注意:这可能会在未来的 Typescript 版本中中断,但希望到那时,该语言将支持一种方法来包含对编译器忽略的 javascript 文件的引用。

于 2013-10-21T13:50:44.827 回答