karma+requirejs

下面的介紹以karma能正常運行爲前提,看karma系列文章:http://www.cnblogs.com/laixiangran/tag/Karma/npm

目錄結構

步驟

安裝

npm install karma-requirejs --save-dev

karma.conf.js

/***
 * Created by laixiangran on 2015/12/22.
 * karma單元測試配置文件
 */

module.exports = function(config) {

    config.set({

        /***
         * 基礎路徑,用在files,exclude屬性上
         */
        basePath: "./karmaTest",

        /**
         * 測試框架
         * 可用的框架:https://npmjs.org/browse/keyword/karma-adapter
         */
        frameworks: ["jasmine", "requirejs"],

        /**
         * 須要加載到瀏覽器的文件列表
         */
        files: [
            {pattern: "*.js", included: false},
            "../test-main.js" //必須放最後
        ]
    });
};

test-main.js

/**
 * Created by laixi on 2016/1/10.
 * requirejs入口文件
 */

"use strict";

//單元測試時用
if(window.__karma__) {
    var allTestFiles = [];
    var TEST_REGEXP = /spec\.js$/;
    var pathToModule = function(path) {
        return path.replace(/^\/base\//, "").replace(/\.js$/, "");
    };
    Object.keys(window.__karma__.files).forEach(function(file) {
        if (TEST_REGEXP.test(file)) {
            // 將路徑轉換成requirejs模塊
            allTestFiles.push(pathToModule(file));
        }
    });
}
require.config({
deps: allTestFiles, callback: window.__karma__.start, baseUrl: "/base" });

 注:karma.conf.js中配置的basePath在運行過程當中是映射到/base目錄下的。換句話說,basePath目錄下的全部文件最終都會放在/base目錄下,所以在test-main.js中requirejs的baseUrl屬性設置必須以/base開頭瀏覽器

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息