我有一个基于jQuery构建的项目。这个网站上有新功能。客户希望为现有功能添加单元测试。
我制作了一个脚本来加载qunit,这取决于requireJs,并放在body标签
之前 <script> var UNITTEST_ENABLED = true ; </script>
<script src="qunit.loader.js"></script>
</body>
</html>
qunit.loader.js
定义为
(function(){
if ( !UNITTEST_ENABLED ) {
return ;
}
function loadCss(url) {
var link = document.createElement("link");
link.type = "text/css";
link.rel = "stylesheet";
link.href = url;
document.getElementsByTagName("head")[0].appendChild(link);
}
var settings = {
qunitScript : 'http://code.jquery.com/qunit/qunit-git',
qunitCss : 'http://code.jquery.com/qunit/qunit-git.css',
requireJsUrl : 'http://requirejs.org/docs/release/2.1.8/minified/require.js'
};
var xhr = $.getScript( settings.requireJsUrl );
xhr.done(function(script, textStatus) {
$('body').append(
'<div id="qunit"></div>'
+'<div id="qunit-fixture"></div>'
);
requirejs.config({
paths: {
'qunit': settings.qunitScript ,
'unit_test_1' : 'unit.test.1'
},
shim: {
'unit_test_1': { deps: ['qunit'] }
}
});
loadCss( settings.qunitCss );
requirejs(['unit_test_1']);
}).fail(function(jqxhr, settings, exception) {
console.log( "script loading error." );
});
}());
我收到Error: No define call for qunit
这样的错误。我是requirejs
的新手,这是加载模块的正确方法。