0

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、モジュールをロードする正しい方法です。

4

0 に答える 0