【发布时间】:2012-11-25 23:37:24
【问题描述】:
我正在制作一个 MVC.NET 4.0 应用程序的原型并定义我们的 Javascript 测试配置。我设法让 Jasmine 使用 Chutzpah 扩展在 VS2012 中工作,并且我能够成功运行纯 Javascript 测试。
但是,我无法加载测试夹具 (DOM) 代码并从我的测试中访问它。
这是我尝试运行的代码:
test.js
/// various reference paths...
jasmine.getFixtures().fixturesPath = "./";
describe("jasmine tests:", function () {
it("Copies data correctly", function () {
loadFixtures('testfixture.html');
//setFixtures('<div id="wrapper"><div></div></div>');
var widget = $("#wrapper");
expect(widget).toExist();
});
});
夹具与测试文件位于同一文件夹中。 setFixtures 操作有效,但是当我尝试从文件加载 HTML 时,它没有。最初,我尝试使用存储库中最新版本的 jasmine-jquery,但后来又退回到 1 年多前的下载版本 1.3.1,因为看起来新版本中存在错误。这是我在 1.3.1 中得到的信息:
测试 'jasmine tests::Copies data correct' 失败 错误:无法加载夹具:./testfixture.html(状态:错误,消息:未定义)在 file:///C:/Users/db66162/SvnProjects/MvcPrototype/MvcPrototype.Tests/Scripts/jasmine/jasmine-jquery -1.3.1.js(第 103 行)
当我检查源代码时,它正在执行 AJAX 调用,但我没有在浏览器中运行。相反,我使用的是运行无头浏览器 (PhantomJS) 的 Chutzpah。当我使用测试工具在浏览器中运行它时,它确实有效。
有没有人可以解决这个问题?我需要能够在 Visual Studio 和 TeamCity 中自动运行这些测试(这就是我使用 Chutzpah 的原因)。我对包括使用另一个测试运行器代替 Chutzpah 的解决方案持开放态度。我还将在这项工作中评估 qUnit 测试框架,所以如果您知道 qUnit 在我的配置中没有这个问题,我会发现它很有用。
【问题讨论】:
标签: visual-studio jasmine jasmine-jquery chutzpah