使用一个测试测试具有许多多个jQuery版本的Jasmine

时间:2013-01-26 19:03:12

标签: jquery jquery-plugins version jasmine jasmine-jquery

我正在PhpStorm上使用Jasmine和JSTestDriver,我正在尝试使用一个js测试文件对多个版本的jquery(即1.7.x,1.8.x,1.9.0和2.0)进行单元测试b)。做这个的最好方式是什么?我在这里读了几个问题而没有实际答案。

  • 将describe放入循环中并手动加载/删除每个jQuery?
  • 我正在使用jasmine-jquery,所以我可以加载fixtures,但我不知道如何用它加载js文件,因为它似乎只是HTML(和json / css)
  • 逐步加载每个脚本,调用jQuery.noConflict可以使它工作吗?
  • 每次jQuery版本更改时,我是否必须重新加载我的jQuery插件?

1 个答案:

答案 0 :(得分:0)

经过几个小时的尝试,我成功地做到了这一点。实际上它非常简单,我只是试图重新发明轮子,使用LAB.js我能够很容易地做到这一点,这是在test.js内部(结果日志也非常好):< / p>

function run() {
  describe("My code on jQuery " + ($().jquery), function () {
    // do your thing
  });
}

var
  $versions = ['1.7.1','1.7.2','1.8.0','1.8.1','1.8.2','1.8.3','1.9.0','2.0.0b1'];

for (var i = 0; i < $versions.length; i++) {
  $LAB
    .setOptions({AlwaysPreserveOrder:true, AllowDuplicates:true, CacheBust:true, BasePath:'/test/'})
    .script('tests/lib/jquery-' + ($versions[i]) + '.js')
    .script('tests/lib/jasmine-jquery.js')
    /* .script('any-other-lib.js') */
    .wait(run);
}

$ LAB中加载的所有内容都按顺序同步加载,因此您始终可以确保脚本的加载顺序。非常简单,并且通过持续集成,它可以在IDE的后台运行而不会有任何麻烦(除非有时跑步者不会清理并且会抛出异常说$ is undefined

相关问题