下面的介绍以karma能正常运行为前提,看karma系列文章:http://www.cnblogs.com/laixiangran/tag/Karma/
目录结构
步骤
安装
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开头