如何在浏览器中运行测试,无需 nodejs 进行验证?
注意,还没有实现在没有 nodejs 的浏览器中运行测试。@JaredSmith 的帮助对于使用 nodejs 运行测试至关重要。
通过利用和调整WebKit SVN 存储库的非官方镜像 -> 主 -> LayoutTests -> js -> promises-tests 中的文件,已经能够实现问题中描述的要求。
试图尽可能少地改变。更新promises-tests
版本2.1.1
从回购2.0.5
中出现的版本;将来自 repo 其他部分的文件webkit
包含到目录中;内添加源;评论了初始化检查功能的环境中的哪些测试。.js
resources
jQuery-3.0.0-pre
adapter.js
promises-in-workers.html
Promise
Worker
jQuery()
document
通过下载jquery-3.0.0-promises-tests-in-browser运行测试,在浏览器中打开index.html
。
$(document).ready(function() {
$("title, h3")
.html("jQuery version " + jQuery().jquery + " Promises/A+ Compliance Tests");
var tests = ["promises-tests-2-1-2.html"
, "promises-tests-2-1-3.html"
, "promises-tests-2-2-1.html"
, "promises-tests-2-2-2.html"
, "promises-tests-2-2-3.html"
, "promises-tests-2-2-4.html"
, "promises-tests-2-2-5.html"
, "promises-tests-2-2-6.html"
, "promises-tests-2-2-7.html"
, "promises-tests-2-3-1.html"
, "promises-tests-2-3-2.html"
, "promises-tests-2-3-3.html"
, "promises-tests-2-3-4.html"
, "Promise-types.html"
// TODO test `jQuery.Deferred()` in `Worker`
// see http://stackoverflow.com/q/10491448/
/* , "promises-in-workers.html" */ ];
$.each(tests, function(index, test) {
$("<iframe>", {
width: "100%"
}).on("load", function(e) {
setTimeout(function() {
e.target.height = e.target.contentWindow
.document.body.scrollHeight * 1.1 + "px";
}, 2000 * (1 + index));
// if (index === tests.length - 1) {
// $(e.target.contentWindow.document.body)
// .prepend("<span style='font-family:Times New Roman'>"
// + "Promises in Workers Test</span>")
// }
})
.attr("src", test).appendTo("body")
})
});
示范