1

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

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

1 回答 1

0

经过几个小时的尝试,我设法做到了。实际上很简单,我只是想重新发明轮子,使用LAB.js我可以很容易地做到这一点,这在你的内部test.js(结果日志也很不错):

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

于 2013-01-27T21:46:55.410 回答