1. 程式人生 > >vue專案中新增單元測試

vue專案中新增單元測試

從網上找了很多例子關於單元測試,都是如何新建專案的時候的新增單元測試,用vue-cli中怎麼新增,但是我的專案已經生成了,不能再一次重新初始化,這時如何新增單元測試,這裡面遇到了好多坑,寫在這裡記錄一下心得。
1、用vue-cli生成一個新的專案,把單元測試需要的檔案直接複製到你的專案中

vue init webpack vuetest

這裡寫圖片描述

2、安裝Karma+Mocha模組,這個模組依賴比較多,我在遇到了坑,解決問題半天發現缺少了某個模組,在這裡全部列出需要的模組

npm i -D karma karma-webpack phantomjs-prebuilt karma-phantomjs
-launcher karma-phantomjs-shim karma-chrome-launcher karma-sourcemap-loader mocha karma-mocha sinon chai sinon-chai karma-sinon-chai karma-spec-reporter karma-coverage

3、修改package.json,在scripts裡新增啟動程式碼

  "unit": "karma start test/unit/karma.conf.js --single-run",

4、修改test目錄下的index.js檔案,這裡是我遇到的最大的坑,解決了半天,總是提示.scss檔案出錯,下面就是解決的辦法。
這裡寫圖片描述

const srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)/)

改為:

const srcContext = require.context('../../src', true, /^\.\/(style$) /)

應該是karma為了測試程式碼的覆蓋率,原本載入了除main.js的所有檔案,我改為把style去除

5、可以複製vue-cli生成的專案檔案來測試,如下圖,並且配置好路由,測試一下單元測試模組是否安裝成功
這裡寫圖片描述

6、在專案中執行下面的命令,啟動單元測試

 npm run unit

這裡寫圖片描述