配置js测试环境

liuuil0 2014-08-17

配置js测试环境:

一.安装Karma

Karma是一个基于Node.js的JavaScript测试执行过程管理工具(TestRunner)。

1.在主目录下执行:

mkdir karma
cd karma
npm install -g karma  (有的可能需要执行sudo npm install -g karma)
//此时,如果出现error,无法安装。由于karma是基于nodejs的,可能是因为之前安装nodejs的问题,如果之前是直接输入命令sudo apt-get install nodejs 安装的,就会导致安装karma出现问题。需要卸掉nodejs和npm重新安装。
 

注:安装nodejs和npm详细安装步骤参考http://www.25kx.com/art/2732031

#测试是否安装karma成功,执行:

karma start
INFO [karma]: Karma 0.12.17 server started at http://localhost:9876/
INFO [Chrome 28.0.1500 (Windows 7)]: Connected on socket nIlM1yUy6ELMp5ZTN9Ek   //出现这样的信息说明安装成功。

二.Karma+Jasmine配置

参考http://blog.fens.me/nodejs-karma-jasmine/中的3即可,里面有截图,很详细。

三.自动化单元测试

1.创建一个简单的js源文件。例如在weixin_kehutong/features/CustomerService/app/assets/javascripts/customer_service里创建test.js文件,并在文件中写一个最简单的方法:

function test(){
    return 'abc';
}

2.创建测试文件。例如在weixin_kehutong/features/CustomerService/spec/javascripts里创建test_spec.js文件,并写测试:

describe("test", function() {
    it("should return 'abc'",function(){
        expect(test()).toEqual('abc');
    });
});

3.修改karma.conf.js配置文件。(按上述安装方法,此文件位置为weixin_kehutong/karma/karma.conf.js)

修改files为

files: [
        '../features/CustomerService/app/assets/javascripts/customer_service/test.js',
        '../features/CustomerService/spec/javascripts/test_spec.js'
    ],

修改browsers为
browsers: ['PhantomJS']

4.启动karma

karmastartkarma.conf.js

单元测试全自动执行。测试成功后,把上面三中的1和2添加的js文件和js测试文件删除,然后按照下面的5操作,最后由于我在工程中引入了一个js文件,所以大家需要拉一下代码才完成js测试的配置。

注:启动karma后可能出现的错误:

1)Cannotload"phantomjs",itisnotregistered!

解决方法,执行命令:

sudo npm install karma-phantomjs-launcher

2)CannotinstallphantomJSinKarma

解决方法,执行命令:

npm install karma@canary phantomjs karma-phantomjs-launcher
npm install karma-phantomjs-launcher --save-dev

3)Karma.jsinstallationinWebStorm-bash:karma:commandnotfound

解决方法,执行命令:

npm install karma-cli

4)karmacommandnotfoundwhenkarmaalreadyinstalled

解决方法,执行命令:

npm install karma-cli

5.修改karma.conf.js配置文件。(按上述安装方法,此文件位置为weixin_kehutong/karma/karma.conf.js)

修改files为

files: [
         '../app/assets/javascripts/jquery-1.10.2.min.js',
        '../app/assets/javascripts/jquery.ui.widget.js',
        '../spec/javascripts/lib/ZeroClipboard.js',
        '../app/assets/javascripts/*.js',
        '../features/**/app/assets/javascripts/**/*.js',
        '../features/**/spec/javascripts/*.js'
    ],    //针对客户通项目,files文件这样修改就好了。

相关推荐