jQuery 上に構築されたプロジェクトがあります。このサイトには新機能が追加されています。クライアントは、既存の機能の単体テストを追加したいと考えています。
requireJsに依存するqunitをロードするスクリプトを作成し、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
、モジュールをロードする正しい方法です。