最近初学AngularJS ,看到的一些教程中经常有人推荐使用Karma+Jasmine来进行单元测试。自己之前也对Jasmine有些了解,jasmine也是一个不错的测试框架。

1、 karma介绍

Karma是Testacular的新名字,在2012年google开源了Testacular,2013年Testacular改名为Karma。

Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuous integration)工具,也可和其他代码编辑器一起使用。这个测试工具的一个强大特性就是,它可以监控(Watch)文件的变化,然后自行执行,通 过console.log显示测试结果。

Jasmine是单元测试框架,本单将介绍用Karma让Jasmine测试自动化完成。Jasmine的介绍,请参考文章:jasmine行为驱动,测试先行

istanbul是一个单元测试代码覆盖率检查工具,可以很直观地告诉我们,单元测试对代码的控制程度。

1 安装NodeJS 以及Npm

2。全局安装Karma  npm install -g  karma      karma安装过程中会同时安装 karma-jasmine 。karma-requirejs等模块。测试是否安装成功  只需要 在控制台 启用

karma start  会出现


在浏览器中输入 http://localhost:9876

3 Karma + Jasmine配置

初始化karma配置文件karma.conf.js 进入要测试文件夹 在控制台中输入karma init  一直按回车即可最终会生成一个karm-conf.js的配置文件

// Karma configuration
// Generated on Wed Oct 30 2013 16:15:24 GMT+0800 (中国标准时间)

module.exports = function(config) {config.set({// base path, that will be used to resolve files and excludebasePath: '',// frameworks to useframeworks: ['jasmine'],// list of files / patterns to load in the browser
    files: [      ],// list of files to exclude
    exclude: [     ],// test results reporter to use// possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'reporters: ['progress'],// web server portport: 9876,// enable / disable colors in the output (reporters and logs)colors: true,// level of logging// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
    logLevel: config.LOG_INFO,// enable / disable watching file and executing tests whenever any file changesautoWatch: true,// Start these browsers, currently available:// - Chrome// - ChromeCanary// - Firefox// - Opera (has to be installed with `npm install karma-opera-launcher`)// - Safari (only Mac; has to be installed with `npm install karma-safari-launcher`)// - PhantomJS// - IE (only Windows; has to be installed with `npm install karma-ie-launcher`)browsers: ['Chrome'],// If browser does not capture in given timeout [ms], kill itcaptureTimeout: 60000,// Continuous Integration mode// if true, it capture browsers, run tests and exitsingleRun: false});
};

4 自动化测试 :三部准备工作  1、编写要测试的js文件即 功能实现js 2编写测试文件 由于我们这里使用的是jasmine 来测试,所以我们按照jasmine的语法来写就行了关于jasmine 请参考上文的连接 3 修改karma.conf.js配置文件。

在D盘根目录下新建一个文件夹 karmatest  新建一个js文件在并编写功能 Caculate.js

function add(a,b){
return a+b;
}

  测试文件 test.js

describe("A suite of basic functions", function() {it("reverse word",function(){expect(add(1,2)).toEqual(3);});
});

  修改 将karma配置文件 karm.conf.js放入karmatest文件夹下,并修改如下

module.exports = function (config) {config.set({basePath: '',frameworks: ['jasmine'],files: ['*.js'],exclude: ['karma.conf.js'],reporters: ['progress'],port: 9876,colors: true,logLevel: config.LOG_INFO,autoWatch: true,browsers: ['Chrome'],captureTimeout: 60000,singleRun: false,});
};

开始运行 karma进行测试 在控制台中进入 cd karma 。运行 karma start karma.conf.js  即可开启测试。并且会自动启动 浏览器,上面配置为chrome浏览器。

如果测试通过 控制台显示如下

如果修改 测试的代码 将3改为4 控制台立刻给出错误的提示,看得出来

describe("A suite of basic functions", function() {it("reverse word",function(){expect(add(1,2)).toEqual(4);});
});

  由于karma.conf.js配置文件中autoWatch: true, 所以test.js文件保存后,会自动执行单元测试。提示我们单元测试出错了。

karma在启动时 chrome 浏览器可能无法自动启动,这时候需要增加一个环境变量CHROME_BIN  值为chome.exe的目录。如

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe 

官方解答如下 

Chrome won't start. (Issues: #202, #74) Set CHROME_BIN like this > export CHROME_BIN='C:\Program Files (x86)\Google\Chrome\Application\chrome.exe' Increase the timeout from 5000ms to 10000ms. At 5000ms, timeouts occurred and the retry logic kicks in and eventually resolves after two to three tries.

转载于:https://www.cnblogs.com/dubaokun/p/3397295.html

Karma和Jasmine 自动化单元测试环境搭建相关推荐

  1. Karma和Jasmine自动化单元测试——本质上还是在要开一个浏览器来做测试

    1. Karma的介绍 Karma是Testacular的新名字,在2012年google开源了Testacular,2013年Testacular改名为Karma.Karma是一个让人感到非常神秘的 ...

  2. Karma和Jasmine自动化单元测试

    2019独角兽企业重金招聘Python工程师标准>>> 转自http://blog.fens.me/nodejs-karma-jasmine/ 前言 在Java领域,Apache, ...

  3. 悬剑2.0 tools安装_APP自动化测试之环境搭建:2. Android SDK安装配置

    APP自动化测试之环境搭建:2. Android SDK安装配置 1.前提 基于win10专业版64位系统+jdk1.8+python3+pycharm+android SDK+appium+unit ...

  4. Python+selenium 自动化-基本环境搭建,调用selenium库访问百度查询天气实例演示

    Python+selenium 自动化 第一章:基本环境搭建 ① 安装 selenium 库 ② 下载对应版本的浏览器驱动 ③ 调用百度查天气演示 第一章:基本环境搭建 ① 安装 selenium 库 ...

  5. python自动化测试环境搭建_selenium+python自动化测试之环境搭建

    最近由于公司有一个向谷歌网站上传文件的需求,需要进行web的自动化测试,选择了selenium这个自动化测试框架,以前没有接触过这门技术,所以研究了一下,使用python来实现自动化脚本,从环境搭建到 ...

  6. 【二十二】win 10 :Jmeter 报告可视化 —— 配置 Jmeter 接口 HTML 可视化测试报告,Jenkins + Jmeter + Ant 自动化集成环境搭建

    目录 一.环境搭建 二.文件下载 三.文件配置 四.本地调试 五.创建.bat文件 六.Jenkins配置邮件 七.配置测试项目 八.自动部署成功校检 九.jmeter仪表盘HTML报告自动化构建 一 ...

  7. android单元测试android环境,基于Robolectric的Android单元测试 —环境搭建与部署运行...

    移动端的测试中,因为回归一些逻辑分支比较多的功能时工作量比较大,且不太适合用UI完成,尝试通过单元测试来完成.几经波折终于完成了一个功能的UT用例并在CI上部署运行,现总结如下: 一.Robolect ...

  8. APP自动化原理+环境搭建

    3.1 APP原理 1.客户端运行脚本的时候,调用任何的appiumAPI,都会向Appium Server端post一条HTTP请求 2.当开启appium服务器的同时就开启了监听端口,Appium ...

  9. python 3.6 + robotFramework自动化框架 环境搭建、学习笔记

    目录 一.环境搭建 1.安装相关的库 2.pycharm 3.IntelliBot 4.pycharm配置执行器 5.fireFox浏览器及对应驱动 二.使用cmd执行 三.案例脚本(.robot文件 ...

最新文章

  1. 为什么matlab生成的exe文件只能在matlab中打开,在电脑的其他地方打不开?
  2. 叮,您有一份ML.NET 速查手册请查收!
  3. 程序员经验分享:Android高级工程师系列学习路线介绍,面试必备
  4. Sublime 的中文乱码问题
  5. 信息学奥赛一本通(1041:奇偶数判断)
  6. [CF.Skills]Windows Mobile如何编程实现免提功能
  7. 案例二:动态页面模拟点击
  8. xmind试用模式会过期吗_汽车可以一直用s档吗?运动模式到底会不会伤车?
  9. 芯片国产化进程提速 赶超洋品牌核心技术尚欠火候
  10. Pandas+Pyecharts | 医院药品销售数据可视化
  11. [4G5G专题-67]:RF层 - 天线常见指标与选型
  12. 一年月份大小月口诀_农历大小月卦口诀详解(最新版)
  13. 五款免费同步备份软件介绍
  14. 华为禁用android键盘,怎么禁用输入法-教你如何关闭华为/荣耀手机的安全键盘
  15. (c++)求平均成绩和优秀率
  16. 《春·蜂》processing下的动画技术交互应用
  17. js中耦合与解耦问题总结
  18. 南林计算机科学,南京林业大学信息科学技术学院
  19. 机械革命旷世 16 Super 水冷笔记本评测
  20. office结课总结报告

热门文章

  1. 4j导入节点与关系_Neo4j Cypher 中怎样根据值动态指定关系类型?
  2. 命令模式的优点?_一篇目录复习完设计模式
  3. linux 邮件中继转发,linux – 如何使sendmail中继本地邮件?
  4. android换肤动画,Android-换肤ThemeSkinning使用
  5. maven多项目打包报错---子模块相互依赖打包时所遇到的问题:依赖的程序包找不到 package xxx does not exist
  6. iOS 2D绘图详解(Quartz 2D)之路径(点,直线,虚线,曲线,圆弧,椭圆,矩形)
  7. mybatis 注解 动态sql_Mybatis 的动态 SQL 语句
  8. 银行使用oracle做查询,Oracle EBS ERP银行信息查询视图
  9. ubuntu12.04 启动mysql_Ubuntu 12.04 MySQL改utf-8 启动不了
  10. servlet php,JSP和Servlet的区别及PHP类比