前言
  在Java领域,Apache, Spring, JBoss 三大社区的开源库,包罗万象,但每个库都在其领域中都鹤立鸡群。而Nodejs中各种各样的开源库,却让人眼花缭乱,不知从何下手。
  Nodejs领域: Jasmine做单元测试,Karma自动化完成单元测试,Grunt启动Karma统一项目管理,Yeoman后封装成一个项目原型模板,npm做nodejs的包依赖管理,bower做javascript的包依赖管理。Java领域:JUnit做单元测试, Maven自动化单元测试,统一项目管理,构建项目原型模板,包依赖管理。
  Nodejs让组合变得更丰富,却又在加重我们的学习门槛。我还说不清楚,也看不透!
  上面写的有点远了,回到文章的主题,Jasmine+Karma自动化单元测试。
  目录
  Karma的介绍
  Karma的安装
  Karma + Jasmine配置
  自动化单元测试
  Karma和istanbul代码覆盖率
  Karma第一次启动时出现的问题
  1. Karma的介绍
  Karma是Testacular的新名字,在2012年google开源了Testacular,2013年Testacular改名为Karma。Karma是一个让人感到非常神秘的名字,表示佛教中的缘分,因果报应,比Cassandra这种名字更让人猜不透!
  Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuous integration)工具,也可和其他代码编辑器一起使用。这个测试工具的一个强大特性是,它可以监控(Watch)文件的变化,然后自行执行,通过console.log显示测试结果。
  Jasmine是单元测试框架,本单将介绍用Karma让Jasmine测试自动化完成。Jasmine的介绍,请参考文章:jasmine行为驱动,测试先行
  istanbul是一个单元测试代码覆盖率检查工具,可以很直观地告诉我们,单元测试对代码的控制程度。
  2. Karma的安装
  系统环境:
  win7 64bit, node v0.10.5, npm 1.2.19
  安装Karma
~ D:workspacejavascript>mkdir karma
~ D:workspacejavascript>cd karma
~ D:workspacejavascriptkarma>npm install -g karma
# 测试是否安装成功
~ D:workspacejavascriptkarma>karma start
INFO [karma]: Karma v0.10.2 server started at http://localhost:9876/
INFO [Chrome 28.0.1500 (Windows 7)]: Connected on socket nIlM1yUy6ELMp5ZTN9Ek
  从浏览器看到karam界面。