我正在使用 Chutzpah 来运行我们的 Jasmine 测试。
我已将 Chutzpah dll 添加到解决方案中,并更新了构建以运行 *.js 测试。
项目结构如下:
MyApp.Web
Scripts
App
Home
DateControl.js
MyApp.Web.Tests
Scripts
Jasmine
lib
Chutzpah (dlls)
Spec
App
Home
DateControlSpecs.js
Jasmine测试文件使用引用标签来引用要测试的文件
/// <reference path="../../../../../../App.web/scripts/app/home/datecontrol.js" />
Jasmine 测试已运行,但出现以下错误:
ReferenceError: Can't find variable: dateControl in file
dateControl 是被测试的对象。
如果我将要测试的代码复制到 Jasmine 测试文件中,那么测试就会通过。
使用 Visual Studio 2013 中的测试资源管理器中的 Chutzpah 测试适配器通过引用标记进行 jasmine 测试。
我不知道为什么这不起作用。
Update
@jessehouwing 的回答为我指出了问题的路径。
构建服务器上的构建文件夹具有以下结构
垃圾桶
_已发布网站
源代码
jasmine 测试脚本和库被复制到 bin 中,而测试下的脚本文件被复制到 src 目录和 _publishedwebsite 目录中。
我正在寻找一种易于管理的解决方案,以便任何未来的开发人员都不需要知道他们需要将任何新脚本链接到测试项目中。
我现在可以接受的解决方案
对于 jasmine 测试文件和正在测试的文件,我按照 Chutzpah 文档在属性中添加了“始终复制”。我没有意识到测试中的文件实际上与 jasmine 测试文件一起复制到构建 bin 文件夹中。
所以在构建服务器上我最终得到了以下结构
bin
scripts
app
* application js files
specs
* jasmine test files
在我的茉莉花测试文件中,我添加了两个引用:
- 首先到要测试的文件的Visual Studio目录结构
- 二到build bin文件夹结构
Hack 1
我可以通过添加另一个对我的茉莉花测试文件的引用来使其工作,该文件使用构建目录的结构而不是解决方案目录结构,但同样会出现错误,因为路径可能输入不正确。
下面的第二个参考将允许测试在 VS Test Explorer 和 TFS Build 中运行
/// <reference path="../../../../../../App.Web/scripts/app/home/datecontrol.js" />
/// <reference path="../../../../../_PublishedWebsites\App.Web/scripts/app/home/datecontrol.js" />
Hack 2
通过将 xcopy 命令添加到项目的构建后构建事件中,我可以将要测试的文件复制到与 jasmine 测试文件相同的位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)