1. 程式人生 > >前端單元測試工具——karma安裝使用

前端單元測試工具——karma安裝使用

首先說明的是,為了學習karma專門買了一臺macbook。該教程也只能說適合mac,windows折騰了一星期沒有進展,所以不知道是不是適合windows。

第一步:

    你的電腦中要裝有node.js(node安裝使用教程自行百度)

第二步:

    使用終端命令進入到需要安裝karma的專案目錄。例如我在桌面上新建一個資料夾叫test。cd Desktop/test

  

第三步:

   開啟sublim text,這樣方便管理專案中的檔案,將test資料夾拖到sublim text裡面

第四步:

在終端命令列中輸入:npm init  命令生成package.json檔案。

一路回車,啥都不用管(管也看不懂)直到出現提示成功。如下圖:

第五步:

終端命令列輸入:npm install karma --save-dev     (這個命令是區域性命令,意思是karma命令只在當前安裝的目錄下生效)

npm install karma -g                    (這個是全域性變數,意思是在電腦中的任何位置都可以使用karma命令)

第六步:

命令終端輸入:karma init    生成karma.conf.js       多數是一直回車,注意的地方如圖:

需要注意第三次回車的時候提示的預覽視窗選擇,這裡選擇的是無頭瀏覽器PhantomJs。

接下來就是一路回車。

然後在test資料夾下就生成了karma.conf.js檔案。

第七步:

需要測試的程式碼一般寫在unit資料夾裡面,我們在test資料夾下新建目錄unit,在unit裡面新建兩個js檔案:index.js和index.spec.js

index.js裡面寫的就是我們需要測試的程式碼,而index.spec.js(也有人寫成indexSpec.js)裡面寫的就是測試條件程式碼。

如:

我們在index.js裡面寫一個方法sum用來測試。

function sum(number){

    return number + 1;

}

index.spec.js裡面寫上:

describe("測試函式",function(){

    it("需要測試的函式",function(){

         expect(sum(1)).toBe(2);    //sum(1)是index.js中的方法,toBe(2)是期望的結果。

    });

});

如圖:(index.spec.js中的程式碼sum()後面少寫了一個括號,程式碼以上面的程式碼為準,比較懶,不想改圖了)

第八步:

配置package.json和karma.conf.js

package.json    :

scripts欄位下增加unit欄位,test欄位一般是自動生成的,最好不要動,unit就是一會兒要執行命令的名字,

"unit":"karma start"

karma.conf.js    :

files:欄位增加

"./unit/**/*.js",

"./unit/**/*.spec.js"

preprocessors欄位增加
preprocessors:{

    "./unit/**/*.js":['coverage']

}

reporters:['progress','coverage'],

coveragereporter:{

    type:'html',

    dir:'coverage'

}

singleRun欄位:

singleRun:true

第九步:

配置完後執行npm run unit命令

這時候會報錯,說是找不到包,然後就按提示安裝就好,總的來說有以下幾個包需要裝:

npm install jasmine-core --save-dev

npm install phantom --save-dev

npm install karma-coverage --save-dev

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

第十步:

等所有包都裝完後再執行npm run unit命令就會提示測試成功:

這時候在test資料夾中會生成一個coverage資料夾,裡面有一個index.html。將這個頁面在瀏覽器中開啟,就會看見自己所測的結果。

注意事項:

在安裝karma過程中遇到的問題也是挺多的,總的來說有以下這些:

一、修改配置檔案要注意及時儲存

二、程式碼書寫正確

三、網路暢通(如果是公司的網注意代理)

四、命令的輸入正確

五、是否是在同一個資料夾下操作