【问题标题】:Chutzpah visual studio test runner cannot find JS referencesChutzpah Visual Studio 测试运行器找不到 JS 引用
【发布时间】:2013-11-26 03:06:59
【问题描述】:

我正在 Visual Sutio 2013 中构建一个 ASP.NET 网站,并且正在使用 Jasmine 和 Chutzpah 测试运行插件进行测试。发现测试正常,但未加载所需的参考。我尝试使用以下内容启动我的测试文件,以确保路径正确(并且每个版本都正确),但它仍然抱怨在我运行测试时角度值不存在。我错过了什么?

/// <reference path="/Scripts/angular.js" />
/// <reference path="../Scripts/angular.js" />
/// <reference path="../../Scripts/angular.js" />
/// <reference path="../../../Scripts/angular.js" />
/// <reference path="../../../../Scripts/angular.js" />
/// <reference path="../../../../../Scripts/angular.js" />
/// <reference path="../../../../../../Scripts/angular.js" />
/// <reference path="../../../../../../../Scripts/angular.js" />
/// <reference path="../../../../../../../../Scripts/angular.js" />
/// <reference path="../../../../../../../../../Scripts/angular.js" />
/// <reference path="../../../../../../../../../../Scripts/angular.js" />
/// <reference path="../../../../../../../../../../../Scripts/angular.js" />

尽管这应该有效(据我所知),我也尝试在我的项目根目录中放置一个 chutzpah.json 文件,配置如下:

"RootReferencePathMode":"SettingsFileDirectory"

以及测试文件中的以下参考:

/// &lt;reference path="/Scripts/angular.js" /&gt;

但这无济于事。由于 Chutzpah 没有承认引用标签的存在,我什至不确定它是否找到了它(尽管它显然找到了相关的测试文件)。

【问题讨论】:

  • 你能告诉我们你的测试是什么样的吗?
  • 测试本身几乎不相关,因为它在预期定义的第一个对象处失败(缺少angular 对象):beforeEach(angular.mock.module('Application'));
  • 我猜你提到了 Jasmine?类似于/// &lt;reference path="/Scripts/jasmine.js" /&gt;。例如,Chutzpah 并没有抱怨 beforeEach 没有定义?如果 Chutzpah 能找到你的 Jasmine 文件,但不能找到 Angular,那就太奇怪了……
  • 如果您从命令行运行 chutzpah,您可以指定 /trace 命令。这将输出一个文件,显示 Chutzpah 找到的文件。
  • 另外,您可以在 chutzpah.codeplex.com 上提交错误并附上包含您的问题重现的 zip 文件

标签: visual-studio unit-testing jasmine chutzpah


【解决方案1】:

我不确定为什么似乎缺少角度参考,但是按照 Matthew Manela 的建议使用 Chutzpah 控制台让我意识到,为了成功完成测试,很多其他参考都缺失了。

最后,我将所有参考资料打包到一个名为 _references.js 的文件中,内容如下:

/// <reference path="jquery-1.9.1.js" />
/// <reference path="jquery-ui-1.8.20.js" />
/// <reference path="jquery.validate.js" />
/// <reference path="jquery.validate.unobtrusive.js" />
/// <reference path="knockout-2.1.0.debug.js" />
/// <reference path="modernizr-2.5.3.js" />
/// <reference path="angular.js" />
/// <reference path="jasmine/jasmine.js" />
/// <reference path="angular-mocks.js" />
/// <reference path="angular-route.js" />

/// <reference path="../Application/src/common/services/" />
/// <reference path="../Application/src/common/views/" />
/// <reference path="../Application/src/common/app.js" />

在我的测试中,我包含以下参考:

/// <reference path="../../../../../Scripts/_references.js" />

剩下的唯一问题是我必须弄清楚每个测试文件有多少层嵌套。我的假设是我可以将以下chutzpah.json 文件放在我的项目根目录中:

{
    "Framework": "jasmine",
    "RootReferencePathMode":"SettingsFileDirectory"
}

然后总是使用引用:

/// <reference path="/Scripts/_references.js" />

这无济于事,但也许我误解了它应该如何工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 2014-07-18
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    相关资源
    最近更新 更多