【问题标题】:Testing Jasmine with many multiple jQuery versions with one test用一个测试用多个 jQuery 版本测试 Jasmine
【发布时间】:2013-01-26 19:03:11
【问题描述】:
我在 PhpStorm 上使用 Jasmine 和 JSTestDriver,我正在尝试使用一个 js 测试文件来对多个版本的 jquery(即 1.7.x、1.8.x、1.9.0 和 2.0)进行单元测试乙)。做这个的最好方式是什么?我在这里阅读了一些没有实际答案的问题。
- 将describe放在循环中并手动加载/删除每个jQuery?
- 我正在使用 jasmine-jquery,所以我可以加载夹具,但我不知道如何用它加载 js 文件,因为它似乎只是 HTML(和 json / css)
- 逐步加载每个脚本,调用jQuery.noConflict可以让它工作吗?
- 每次 jQuery 版本更改时我是否必须重新加载我的 jQuery 插件?
【问题讨论】:
标签:
jquery
jquery-plugins
version
jasmine
jasmine-jquery
【解决方案1】:
经过几个小时的尝试,我已经做到了。其实很简单,我只是想重新发明轮子,使用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)