Chutzpah Visual Studio 测试运行程序无法找到 JS 引用。

5

我正在使用Visual Studio 2013构建一个ASP.NET网站,并使用Jasmine和Chutzpah测试运行器插件进行测试。测试被找到了,但需要的引用没有被加载。我尝试在测试文件开头添加以下内容,以确保路径正确(并分别使用每个版本),但仍然抱怨当我运行测试时angular值不存在。我错过了什么?

/// <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" 并在测试文件中添加以下引用: /// <reference path="/Scripts/angular.js" /> 但这并没有帮助。由于 Chutzpah 无法承认引用标签的存在,我甚至不确定它是否已经找到了它(虽然显然已经找到了相关的测试文件)。

你能展示一下你的测试样例吗? - Simon Adcock
测试本身应该不太相关,因为它在第一个期望被定义的对象(缺少 angular 对象)失败:beforeEach(angular.mock.module('Application')); - Morten Christiansen
你已经包含了对Jasmine的引用,我猜测是这样的:/// <reference path="/Scripts/jasmine.js" />。而且Chutzpah没有抱怨beforeEach未定义,是这样吧?如果Chutzpah能找到你的Jasmine文件,却找不到Angular,那就有点奇怪了... - Simon Adcock
4
如果您从命令行运行 Chutzpah,您可以指定 /trace 命令。这将输出一个文件,显示 Chutzpah 发现了哪些文件。 - Matthew Manela
另外,您可以在chutzpah.codeplex.com上提交错误报告,并附上一个包含您问题重现的zip文件。 - Matthew Manela
@SimonAdcock 我其实没有考虑过那个问题。我在我的测试文件中没有添加对Jasmine的引用,我猜想我只是假设Chutzpah知道Jasmine。 - Morten Christiansen
1个回答

4

我不确定为什么会出现缺少Angular引用的情况,但是按照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" />

这并没有帮助,但也许我没有理解这应该如何工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接