karma+requirejs

下面的介绍以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开头

时间: 2024-10-31 11:13:55

karma+requirejs的相关文章

karma+requirejs+angular 测试

http://karma-runner.github.io/0.8/plus/RequireJS.html karma 不是测试框架,只是一个运行测试框架的服务器 karma测试的原理是,将所有的文件都加载,然后执行对应的测试文件 使用到的前端自动化工具: grunt bower npm 等 安装依赖: "karma": "^0.13.15", "karma-chrome-launcher": "^0.2.1", "

Grunt - Karma 单元测试

Karma 是 Goolge 开源的一个 Test runner, 可以配合 Grunt 使用. 1. 相关插件介绍 1.1 Karma 的官网 http://karma-runner.github.io/ 官网中的文档其实分多钟版本,不同版本的 karma 使用也有所不同,注意页面右上角的版本信息. 1.2 配合 Grunt 的插件 grunt-karma https://github.com/karma-runner/grunt-karma 1.3 karma 用来启动 chrome 的 k

结合angularjs,Karma和Jasmine自动化单元测试

前言 在Java领域,Apache, Spring, JBoss 三大社区的开源库,包罗万象,但每个库都在其领域中都鹤立鸡群.而Nodejs中各种各样的开源库,却让人眼花缭乱,不知从何下手. Nodejs领域: Jasmine做单元测试,Karma自动化完成单元测试,Grunt启动Karma统一项目管理,Yeoman最后封装成一个项目原型模板,npm做nodejs的包依赖管理,bower做javascript的包依赖管理. Java领域:JUnit做单元测试, Maven自动化单元测试,统一项目

requireJS

1.用于ADM(基于模块的异步加载JavaScript代码的机制)js模块开发 2.下载requireJS 3.好处: 1)有效防止命名冲突(js多时可能很多全局变量容易重复) 2)声明不同的js文件之间的依赖 3)模块化的开发 4.常用方法: requirejs.config:为模块指定别名 requirejs:将写好的模块引入并编写主代码 define:编写模块,在相应地方来引用 5.例子: 1)引入模块入口data-main是入口;<script data-main="js/main

requireJS(一)

一:为什么要使用requireJS? 很久之前,我们所有的JS文件写到一个js文件里面去进行加载,但是当业务越来越复杂的时候,需要分成多个JS文件进行加载,比如在页面中head内分别引入a.js,b.js,c.js等,如下所示: <script src="js/app/a.js"></script> <script src="js/app/b.js"></script> <script src="js/

JS模块化工具requirejs教程02

基本API require会定义三个变量:define,require,requirejs,其中require === requirejs,一般使用require更简短 define 从名字就可以看出这个api是用来定义一个模块 require 加载依赖模块,并执行加载完后的回调函数 前一篇中的a.js: define(function(){ function fun1(){ alert("it works"); } fun1(); }) 通过define函数定义了一个模块,然后再页面

单元测试工具 - karma

在离开上一家公司之前,team leader 在我离开前留给了我最后几个关键字:karma,断言库,JASMINE,QUNIT,MOCHA. 可一直拖拖沓沓的,没有去了解.直到今天,才终于抽出心情和时间来研究它. 在文章开始之前,首先对前 team leader — 满爷 表示感激. 虽然你不是我所见过的最优秀的前端,但你是我所见的最乐意与小伙伴share经验心得的 team leader. OK,言归正传,开始主题... 关于karma Karma是一个基于Node.js的JavaScript

Angular-ui-router + oclazyload + requirejs实现资源随route懒加载

本文主要说明在用AngularJS开发web应用中如何实现lazyload,使用AngularJS需要在前端实现路由功能,本文就介绍利用此点实现前端资源的懒加载. 问题 目前大部分AngularJS的应用用requirJS组织模块,但是很多都没有使用lazyload功能,在app.js中启动时将全部依赖加载进来,在模块功能较少,前端资源少的情况下没问题.那么问题来了,依赖资源过多时怎么办? build时利用grunt-contrib-requirejs提取合并文件,减少http请求,但是存在问题

requirejs下载与配置

写在开始: requirejs有中文版api文档,可以访问http://www.requirejs.cn/home.html 下载requirejs 访问http://www.requirejs.cn/docs/download.html 下载require.js(可以下载原版或压缩版,压缩版体积小,原版未压缩,便于开发人员阅读) 这里下载到scripts目录 参考资料: http://www.requirejs.cn/