Karma和Jasmine 自动化单元测试环境搭建
最近初学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 自动化单元测试环境搭建相关推荐
- Karma和Jasmine自动化单元测试——本质上还是在要开一个浏览器来做测试
1. Karma的介绍 Karma是Testacular的新名字,在2012年google开源了Testacular,2013年Testacular改名为Karma.Karma是一个让人感到非常神秘的 ...
- Karma和Jasmine自动化单元测试
2019独角兽企业重金招聘Python工程师标准>>> 转自http://blog.fens.me/nodejs-karma-jasmine/ 前言 在Java领域,Apache, ...
- 悬剑2.0 tools安装_APP自动化测试之环境搭建:2. Android SDK安装配置
APP自动化测试之环境搭建:2. Android SDK安装配置 1.前提 基于win10专业版64位系统+jdk1.8+python3+pycharm+android SDK+appium+unit ...
- Python+selenium 自动化-基本环境搭建,调用selenium库访问百度查询天气实例演示
Python+selenium 自动化 第一章:基本环境搭建 ① 安装 selenium 库 ② 下载对应版本的浏览器驱动 ③ 调用百度查天气演示 第一章:基本环境搭建 ① 安装 selenium 库 ...
- python自动化测试环境搭建_selenium+python自动化测试之环境搭建
最近由于公司有一个向谷歌网站上传文件的需求,需要进行web的自动化测试,选择了selenium这个自动化测试框架,以前没有接触过这门技术,所以研究了一下,使用python来实现自动化脚本,从环境搭建到 ...
- 【二十二】win 10 :Jmeter 报告可视化 —— 配置 Jmeter 接口 HTML 可视化测试报告,Jenkins + Jmeter + Ant 自动化集成环境搭建
目录 一.环境搭建 二.文件下载 三.文件配置 四.本地调试 五.创建.bat文件 六.Jenkins配置邮件 七.配置测试项目 八.自动部署成功校检 九.jmeter仪表盘HTML报告自动化构建 一 ...
- android单元测试android环境,基于Robolectric的Android单元测试 —环境搭建与部署运行...
移动端的测试中,因为回归一些逻辑分支比较多的功能时工作量比较大,且不太适合用UI完成,尝试通过单元测试来完成.几经波折终于完成了一个功能的UT用例并在CI上部署运行,现总结如下: 一.Robolect ...
- APP自动化原理+环境搭建
3.1 APP原理 1.客户端运行脚本的时候,调用任何的appiumAPI,都会向Appium Server端post一条HTTP请求 2.当开启appium服务器的同时就开启了监听端口,Appium ...
- python 3.6 + robotFramework自动化框架 环境搭建、学习笔记
目录 一.环境搭建 1.安装相关的库 2.pycharm 3.IntelliBot 4.pycharm配置执行器 5.fireFox浏览器及对应驱动 二.使用cmd执行 三.案例脚本(.robot文件 ...
最新文章
- 为什么matlab生成的exe文件只能在matlab中打开,在电脑的其他地方打不开?
- 叮,您有一份ML.NET 速查手册请查收!
- 程序员经验分享:Android高级工程师系列学习路线介绍,面试必备
- Sublime 的中文乱码问题
- 信息学奥赛一本通(1041:奇偶数判断)
- [CF.Skills]Windows Mobile如何编程实现免提功能
- 案例二:动态页面模拟点击
- xmind试用模式会过期吗_汽车可以一直用s档吗?运动模式到底会不会伤车?
- 芯片国产化进程提速 赶超洋品牌核心技术尚欠火候
- Pandas+Pyecharts | 医院药品销售数据可视化
- [4G5G专题-67]:RF层 - 天线常见指标与选型
- 一年月份大小月口诀_农历大小月卦口诀详解(最新版)
- 五款免费同步备份软件介绍
- 华为禁用android键盘,怎么禁用输入法-教你如何关闭华为/荣耀手机的安全键盘
- (c++)求平均成绩和优秀率
- 《春·蜂》processing下的动画技术交互应用
- js中耦合与解耦问题总结
- 南林计算机科学,南京林业大学信息科学技术学院
- 机械革命旷世 16 Super 水冷笔记本评测
- office结课总结报告
热门文章
- 4j导入节点与关系_Neo4j Cypher 中怎样根据值动态指定关系类型?
- 命令模式的优点?_一篇目录复习完设计模式
- linux 邮件中继转发,linux – 如何使sendmail中继本地邮件?
- android换肤动画,Android-换肤ThemeSkinning使用
- maven多项目打包报错---子模块相互依赖打包时所遇到的问题:依赖的程序包找不到 package xxx does not exist
- iOS 2D绘图详解(Quartz 2D)之路径(点,直线,虚线,曲线,圆弧,椭圆,矩形)
- mybatis 注解 动态sql_Mybatis 的动态 SQL 语句
- 银行使用oracle做查询,Oracle EBS ERP银行信息查询视图
- ubuntu12.04 启动mysql_Ubuntu 12.04 MySQL改utf-8 启动不了
- servlet php,JSP和Servlet的区别及PHP类比