下面的介紹以karma能正常運行爲前提,看karma系列文章:http://www.cnblogs.com/laixiangran/tag/Karma/npm
npm install karma-requirejs --save-dev
/*** * 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" //必須放最後 ] }); };
/** * 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開頭瀏覽器