Javascript JsTestDriver Jasmine&茉莉的jQuery

时间:2011-09-19 20:03:08

标签: javascript jasmine js-test-driver jasmine-jquery

我有很多Jasmine单元测试,它们运行Javascripts代码的单元测试。 他们使用Jasmine-jquery插件来进行DOM操作。 他们使用loadFixture来加载HTML的装置

我尝试使用JsTestDriver和JasmineAdapter自动执行这些单元测试 但所有涉及DOM-jquery操作的测试都没有通过? 这有什么问题吗? 有没有办法在JsTestDriver中使用Jasmine-jquery?

3 个答案:

答案 0 :(得分:9)

我会自己回答,因为我找到了解决这个问题的方法。 问题是Jasmine-Jquery使用ajax加载html fixture,它使用相对路径,假设html fixture位于相对于运行Jasmine测试的HTML容器的某个地方。 但是因为JsTestDriver在自己的“空间”中加载测试,所以我们必须改变位置,Jasmine-Jquery在那里寻找那些html灯具,并让JsTestDriver加载它们。

所以解决方案如下:

JsTestDriver能够加载静态html文件。 在配置文件中添加以下内容:

即成:   - 例如: 服务:   - 灯具* .html

现在您可以使用以下格式访问这些内容 HTTP:本地主机:9876 /测试/夹具/ ... 你让Jasmine-jquery知道从这个位置加载灯具。

瞧,瞧,你的测试会再次开始。

答案 1 :(得分:3)

只是澄清previous posting

如果您的jsTestDriver配置文件中有:

服务:

spec/fixtures/*_fixture.html

然后,您需要使用

覆盖测试套件
jasmine.getFixtures().fixturesPath = '/test/spec/fixtures';

这基本上是/test/ +您在jsTestDriver配置文件的服务部分中声明的路径。

答案 2 :(得分:0)

我刚刚发布了一个开源工具包,希望能帮助其他人,因为它可以帮助我。它由许多开源工具组成,可以为您提供开箱即用的工作requirejs骨干应用程序。

使用requirejs文本插件和requirejs handlebars插件,它有一个更优雅的解决方案。

它提供了单个命令来运行:dev web server,jasmine单浏览器测试运行器,jasmine js-test-driver多浏览器测试运行器,以及JavaScript和CSS的连接/缩小。它还会输出您的应用程序的未分级版本以进行生产调试,预编译您的车把模板,并支持国际化。 无需设置。它只是有效。

http://github.com/davidjnelson/agilejs