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文件这样修改就好了。