Chutzpah - 使用 jasmine 和 TypeScript 进行 AngularJS 测试
Posted
技术标签:
【中文标题】Chutzpah - 使用 jasmine 和 TypeScript 进行 AngularJS 测试【英文标题】:Chutzpah - AngularJS testing with jasmine and TypeScript 【发布时间】:2016-05-28 00:26:29 【问题描述】:我在 Visual Studio 2015 Update 1 的 TypeScript 中使用 Angular 1.4.9 和 Jasmine 2.2.0 和 Chutzpah 4.2.0 以及我的 Angular 代码和单元测试。
我的问题与之前发布的 TypeScript - jasmine - Chutzpah - AngularJS 相同。我试图在那里实现接受的答案(将/// <chutzpah_reference />
添加到角度、角度模拟和角度ui的测试打字稿文件中),但是我仍然收到错误:
找不到变量:文件 X 中的角度
在删除上述 chutzpah 引用后,我还尝试将 js 文件添加到 chutzpah.json 文件中(见下文)
在此之后,我从 Visual Studio Options-> Chutzpah -> Enable Chutzpah Tracing 启用了 Chutzpah 日志记录,重新运行测试,并确认 JS 文件确实被拾取。我还可以使用 Chutzpah 在 typescript 中运行其他没有角度依赖的测试。
有什么想法吗?
"Framework": "jasmine",
"Compile":
"Mode": "External",
"Extensions": [ ".ts" ],
"ExtensionsWithNoOutput": [ ".d.ts" ]
,
"References": [
"Includes": [ "*/../project/app/*.ts", "../project/scripts/*.js" ],
"Excludes": [ "*/../project/app/*.d.ts" ]
],
"Tests": [
"Includes": [ "*/AppTests/*.ts" ],
"Excludes": [ "*/AppTests/*.d.ts" ]
]
项目目录结构相当标准:SLN 文件有 2 个项目,一个用于 Web 应用程序,另一个用于 Web 应用程序测试。
【问题讨论】:
【参考方案1】:见https://github.com/mmanela/chutzpah/wiki/Breaking-change-to-nested-reference-comments-in-version-4.1:
Chutzpah 4.1 更改了何时扫描您的文件以查找 /// <reference
cmets。最初,Chutzpah 没有 chutzpah.json 设置文件,只能通过破解打开文件并解析参考 cmets 来查找参考。但是,由于添加了 chutzpah.json 文件,因此推荐的声明引用的方法是使用引用部分而不是文件 cmets。问题是即使您使用 chutzpah.json 它仍然会打开您的文件并为 cmets 解析它们(这会降低性能成本)。为了解决这个问题,4.1 版改变了扩展引用的工作方式。
如果您不使用 chutzpah.json 文件来指定您的测试(不推荐),则不会发生任何变化。您的参考 cmets 仍在解析中。
如果您指定了一个测试设置并且还想扩展嵌套引用,则必须将 ExpandReferenceComments
设置设置为 true。例如:
“测试”:[ “路径”:“测试”,“包含”:[“.Spec.”],“ExpandReferenceComments”:“真” ]
【讨论】:
嗨@Matthew,谢谢。在发布问题并进行适当修改后,我找到了此链接。但是,拾取依赖的角度文件似乎仍然存在问题。我想出了一个 min-Repo 解决方案来演示这个问题。 Github 有什么好发的地方吗? 我已经在 GitHub 上提出了github.com/mmanela/chutzpah/issues/478,并附上了我看到的问题的回购。以上是关于Chutzpah - 使用 jasmine 和 TypeScript 进行 AngularJS 测试的主要内容,如果未能解决你的问题,请参考以下文章
输入 [type="file"] 的 Angular 和 Jasmine 单元测试更改事件
使用 Jasmine 和 TypeScript 进行单元测试