Karma是一个JavaScript的测试运行器。Karma更是一个测试环境,使用Karma可以很方便的的运行测试,今天我们简单地介绍一karma测试环境的搭建和基本的测试,我已经写好了一套测试用例,有谁需要可以私信我。
官网如下:http://karma-runner.github.io/0.12/index.html
我们总是实现完feature后再编写测试用例,但是根据TDD的原则,开发的流程一般是这样,
1.编写测试(执行失败的case)
2.运行测试(执行失败)
3.编写代码(让case测试通过)
4.运行测试
5.重构并重新测试,保证测试通过
在这个过程中,TDD的流程被执行一遍又一遍,需要不断的重复这个过程。如果有一个这样的环境能够监测到文件内容到变化,并能自动运行测试用例岂不是更好?
Karma就是这样一个开发环境,开发者指定需要测试的脚本和测试文件,需要运行的浏览器等信息,Karma会在后台自动监控文件的修改,并启动一个浏览器与Karma的服务器连接,这样当源代码或者测试发生修改后,Karma会自动运行测试。
开发者可以指定不同的浏览器。由于Karma只是一个运行器,你可以使用项目中使用的测试框架如Jasmine,Mocha,QUnit等,咱们以jasmine为例说明,Mocha环境搭建随后介绍。
如何运行Karma
Karma需要一个配置文件来知道哪些文件需要被加载,哪些文件是测试文件(需要被监控),这个配置文件可以通过Karma自带的init参数来生成。
环境搭建:
Karma通过npm安装
npminstall -g karma
安装之后,可以生成karma需要的配置文件:
karma init my.conf.js
注:如果报错karma命令找不到,说明还没有装karma到命令行支持,可以使用如下命令:
npm install -gkarma-cli
接下来还要安装下jasmine插件和chrome插件
npm installkarma-jasmine karma-chrome-launcher --save-dev
karma会让你回答一些问题,比如是哪种测试框架,哪些文件需要被测试,哪些浏览器需要支持,是否需要karma监测测试文件,然后就在该目录下生成了my.config.js文件。
为了不让测试文件和源文件分离,我们在my.config.js相同的目录下建立src/jasmine/目录,在该目录下存放源文件,再建立text/jasmine/目录,用来放测试文件。
我们先测试下karma环境是否ok,执行karma start my.conf.js,如果正常执行,则表明初始化成功。
下面我们修改下my.config.js,将源文件和测试文件路径映射到配置文件中,karma启动时回将这些文件载入。将files部分修改为:
// list of files / patterns to load in thebrowser files = [ ‘src/**/*.js‘, ‘test/**/*spec.js‘ ];
在启动karma服务前。我们先在test/jasmine目录下建一个test-spec.js文件,输入一下代码:
describe("A suite", function() { it("contains spec with an expectation", function() { expect(true).toBe(true); }); });
接下来,可以执行测试了,执行命令:karma start my.conf.js
应该可以跑成功了,如果有问题请留言。
后续介绍jasmine部分知识,有需要的话,请留意!!
本文出自 “Eason's hcc” 博客,请务必保留此出处http://hcc0926.blog.51cto.com/172833/1613154
原文地址:http://hcc0926.blog.51cto.com/172833/1613154