安裝依賴
1 全局安裝 karma-cli
2 安裝webpack 2/3
3 安裝karma,karma-mocha,karma-chai,karma-chrome-launcher,mocha,chai
4 安裝 karma-webpack, babel-core,babel-preset-dev,babel-loader,babel-plugin-istanbul
配置
karma init 初始化配置文件
根據(jù)配置文件做相應(yīng)修改
主要是files,plugins,webpack,exclude
由于是es6模塊引入,只要添加測(cè)試文件入口即可。
Plugins即上述的karma-x插件。
Webpack配置對(duì)象的子集,注意不用入口和輸出配置。可在babel-loader的options配置preset:["dev"],plugins:["istanbul"].
Exclude 掉node_modules里的j s 。
使用karma-coverage
Preprocessor 添加待測(cè)試文件和測(cè)試文件,預(yù)處理器都為webpack 。
Reporter處添加coverage 。
可配置其輸出位置。
使用karma-mocha-report 替換progress報(bào)告。
可配置其格式。
注意webpack只需要配置rules 不需要入口和出口,入口已經(jīng)有karma的files控制了。
開啟
karma start或者寫入npm test中。
karma.config.js文件加入chai,則不用導(dǎo)入chai和expect
可能會(huì)遇到的問(wèn)題
安裝依賴問(wèn)題
1karma-webpack 前先安裝webpack 版本2,3不要4。
2各種module找不到,手動(dòng)裝完一個(gè)又一個(gè)。解決方案。手動(dòng)刪除node_modules,清空npm cache:npm cache clean --force,重裝。還不行,就重新開啟一個(gè)不同名的項(xiàng)目文件夾,完全干凈的項(xiàng)目環(huán)境,否則系統(tǒng)緩存很強(qiáng)。
加入karma-coverage 可能會(huì)失效,顯示各種0,檢查webpack配置里添加istanbul插件。preprocessor里要加入如src里的待測(cè)試文件。