在WebStorm中集成Karma+jasmine进行前端单元测试
在WebStorm中集成Karma+jasmine进行前端单元测试
前言
好久没有写博了,主要还是太懒=。=,有点时间都去带娃、看书了,今天给大家分享一个原创的小东西,如果大家对TDD或者BDD有兴趣,可以也尝试一下哦。
PS:附上小女萌图一张:^_^

使用的工具/框架
webstorm
这个做前端的童鞋们应该都比较熟悉了吧,jetBrain出品的IDE神器,做Web开发、Node.js开发都可以。功能十分强大,我们今天的测试框架就是要与它集成,实现“开发的同时自动测试”。下面给出一些相关的资料地址:
- 官网:http://www.jetbrains.com/webstorm
- 淘宝明河同学的webstorm最佳实践(在线电子书):http://www.book.36ria.com/webstorm/index.html
Karma
这个是一个很强大的测试框架(Test Runner),可能有些童鞋不认识,不过相信有不少人用过jsTestDriver.是的,Karma也是Google出品,其前身叫做TestAcular,据其介绍视频上说,是Google在开发AngularJS的时候,感觉到jsTestDriver有一些不足,从而重新开发了一套测试框架。
其官网地址:http://karma-runner.github.io/0.10/index.html
补充一句:Karma本身只是一个测试框架,而不是assert framework,它支持你使用任何的断言lib,比如jasmine,mocha,qunit等等。也支持你使用任意的reporter生成报表。
实现步骤
Step1:安装Webstorm和Karma
- Webstorm是收费的,但是屌丝们总是有办法的,你们懂的,这里IDE的安装就不说了,很简单一路默认即可。
- Karma是依赖Node.js的,所以要先安装Node.js,可以去这里下载,然后直接安装即可。
- 安装完node之后,npm也就附带安装了,npm就是node.js的包管理器,我们通过它来安装其他的第三方库、框架,下面打开cmd窗口,输入“npm install -g karma”,等几分钟就会看到安装完成的提示了
- 安装完成后,注意看cmd窗口提示,里面会有最终安装到的路径(比如我用的Win7系统,就是C:/users/xxx/AppData/Roaming/npm/),把这个路径记下,后面会用到
现在Karma就安装好了,默认Karma会自动安装karma-jasmine插件,这是一个能够使用jasmine断言语法的框架,我们今天的测试用例就是用它来写啦。
Step2:设置Webstorm
下面到重点了,通过对webstorm的settings的一番摸索,终于找到了一个很方便的办法,可以让我们轻松的实现在IDE一边开发、一边同步看到测试结果的方法,下面就介绍如何来设置:
- 打开webstorm,选择File->Settings。
- 点击External Tools->+图标,弹出配置窗口,按照如下方式配置
- name:主要是描述这是什么东西,随你喜好
- Program:这个很重要,把之前记下的安装路径填写到这里
- 后面2个参数照着填写即可,不需修改
- 设置完成后,就ok了,下面我们来看看效果。
注意本篇文章不是讲karma的使用,所以具体如何使用karma来单元测试,请移步官网看一下介绍即可,下面直接使用我目前的一个karma工程演示一下效果
效果演示
选择要运行的测试配置文件:右键启动测试。下面会直接显示命令行窗口,当前的测试自动开始运行。


karma还可以监控你测试中的文件,一旦你改动了任何地方,save的时候,test可以自动运行。

总结
今天主要是把这个小技巧记录、分享一下,没啥好总结的了,祝大家玩的开心~。
感谢支持
精彩的还在后面,请大家多多支持,给点动力哈~
如果本文对您有帮助的话,请别吝啬手中的推荐票哦~
在WebStorm中集成Karma+jasmine进行前端单元测试的更多相关文章
- 搭建Karma+Jasmine的自动化单元测试
最近在打算将以前的代码进行重构,过程中发现自己不写自动化测试代码,而是手动的写,这样并不好,所以就学了Karma+Jasmine的自动化单元测试,以后写代码尽量要写自动化单元测试,也要测一下istan ...
- Karma:2. 集成 Karma 和 mocha 进行单元测试
上一篇文章讨论了如何集成 Karma 和 Jasmine,地址见:Karma:1. 集成 Karma 和 Jasmine 进行单元测试 这篇文章讨论如何 Karma 集成 mocha 测试框架. 安装 ...
- karma + jasmine 构建前端自动化测试
http://blog.fens.me/nodejs-karma-jasmine/ 很全的文档 执行karma init时报错如下: $ karma init > readline.js:5 ...
- Karma+Jasmine实现自动化单元测试
1.Karma介绍 Karma是Testacular的新名字,在2012年google开源了Testacular,2013年Testacular改名为Karma.Karma是一个让人感到非常神秘的名字 ...
- 常见开发需求之前端利器webstorm中的git和快捷键
需求 前端开发中我们最常用的一般是webstorm.hbuilder和sublime,因为以前使用过一段时间eclipse所以我对webstorm的感觉比较良好,再加上以前使用hbuilder维护 ...
- Karma 5:集成 Karma 和 Angular2
集成 Karma 和 Angular2 我们需要做很多工作,由于需要使用 TypeScript 进行开发,首先需要正确配置 Typescript ,然后正确配置对 Angular2 的引用.还要创建 ...
- Karma +Jasmine+ require JS进行单元测试并生成测试报告、代码覆盖率报告
1. 关于Karma Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner). 该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuou ...
- angularJS测试一 Karma Jasmine Mock
AngularJS测试 一 测试工具 1.NodeJS领域:Jasmine做单元测试,Karma自动化完成单元测试,Grunt启动Karma统一项目管理,Yeoman最后封装成一个项目原型模板,npm ...
- 使用karma+jasmine做单元测试
目的 使用karma和jasmine来配置自动化的js单元测试. Karma和Jasmine Karma是由Angular团队所开发的一种自动化测试工具.链接:http://karma-runner. ...
随机推荐
- Java数据结构与算法(2) - ch03排序(冒泡、插入和选择排序)
排序需要掌握的有冒泡排序,插入排序和选择排序.时间为O(N*N). 冒泡排序: 外层循环从后往前,内存循环从前往后到外层循环,相邻数组项两两比较,将较大的值后移. 插入排序: 从排序过程的中间开始(程 ...
- sql server 视图 的一个例子
这是一个 有点复杂的查询.我现在 想把他封装 成 视图 其中 B.RecordID= 41 提供给 视图外查询. create view view_UserRecord as select Rec ...
- SQL2005性能分析一些细节功能你是否有用到?(三)
原文:SQL2005性能分析一些细节功能你是否有用到?(三) 继上篇: SQL2005性能分析一些细节功能你是否有用到?(二) 第一: SET STATISTICS PROFILE ON 当我们比较查 ...
- 在SQL Server中对视图进行增删改
原文:在SQL Server中对视图进行增删改 Lesktop开源IM发布以后,有一些网友问及如何在嵌入IM后与自己网站的用户系统整合(即如何让嵌入的IM直接使用网站原有的用户数据库,而不需要将已有的 ...
- 让你的Windows不断重启的C语言代码
原文:让你的Windows不断重启的C语言代码 没有写Linux的原因是因为搞不定Linux下的权限问题,而Windows下基本上使用电脑的用户都是管理员,所以钻个空了,不多说下面是代码#includ ...
- MVC验证09-使用MVC的Ajax.BeginForm方法实现异步验证
原文:MVC验证09-使用MVC的Ajax.BeginForm方法实现异步验证 MVC中,关于往后台提交的方法有: 1.Html.BeginForm():同步 2.Ajax.BeginForm():异 ...
- 使用collectd与visage收集kvm虚拟机性能实时图形
软件功能: 通过collectd软件来监控收集kvm虚拟机的性能数据,包含cpu,memory.磁盘IO.网络流量等 通过visage软件将收集到的数据绘制图形. 安装: 系统环境:ubuntu12. ...
- loadrunner常用函数总结
事务函数:lr_end_sub_transaction 标记子事务的结束以便进行性能分析lr_end_transaction 标记 LoadRunner 事务的结束lr_end_transaction ...
- bat启动/停止oracle服务
原文:bat启动/停止oracle服务 自己的电脑比较慢,尤其装了oracle10g后,服务开启和关闭用bat文件操作省事点 开启服务 @echo offnet start OracleService ...
- Python 2.7.3 urllib2.urlopen 获取网页出现乱码解决方案
出现乱码的原因是,网页服务端有bug,它硬性使用使用某种特定的编码方案,而并没有按照客户端的请求头的编码要求来发送编码. 解决方案:使用chardet来猜测网页编码. 1.去chardet官网下载ch ...