我正在原型制作一个MVC.NET 4.0应用程序,并定义我们的Javascript测试配置。我成功地使用Chutzpah扩展在VS2012中使Jasmine工作,我能够成功地运行纯Javascript测试。
但是,我无法加载测试fixture(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();
});
});
测试文件和fixture文件在同一个文件夹中。使用setFixtures
操作可以正常工作,但是当我尝试从文件加载HTML时却无法正常运行。最初,我尝试使用存储库中最新版本的jasmine-jquery,但后来退回到了一年前的下载版本1.3.1,因为看起来新版本存在一个bug。以下是我在1.3.1中遇到的错误信息:
测试'jasmine tests::正确复制数据'失败 错误:Fixture无法加载:./testfixture.html(状态:错误,消息:未定义)在file:///C:/Users/db66162/SvnProjects/MvcPrototype/MvcPrototype.Tests/Scripts/jasmine/jasmine-jquery-1.3.1.js(第103行)
当我检查源代码时,它正在进行AJAX调用,但我没有在浏览器中运行。相反,我使用的是Chutzpah,它运行一个无头浏览器(PhantomJS)。当我在带有测试套件的浏览器中运行时,它可以正常工作。
有没有人能够解决这个问题?我需要能够在Visual Studio和TeamCity中自动运行这些测试(这就是为什么我使用Chutzpah的原因)。如果您知道qUnit在我的配置中没有这个问题,我也会考虑使用qUnit测试框架。