jest 的 coverage 提示 unknown 的解決方案

概述

這幾天玩 jest ,我在運行單元測試以後 coverage 老是顯示 unknown,花了不少時間排查緣由,最後終於想明白了,記錄下來,供之後開發時參考,相信對其餘人也有用。vue

coverage參數

首先最可能的緣由是,命令中沒有帶--coverage參數。通常 github 的 issue 裏面都是說的這個緣由。git

可是我玩的不是原生jest,而是 vue-cli 的 @vue/cli-plugin-unit-jest 包裏面 jest ,包裏面已經幫咱們配置好了一些參數,包括這個--coverage參數。咱們的package.json文件裏面是這麼寫的:github

"scripts": {
  "test:unit": "vue-cli-service test:unit --coverage"
},

因此當執行npm run test:unit的時候,會自動帶上--coverage參數。vue-cli

coverage 須要測試文件

另外一個緣由是,咱們沒有指明須要coverage的文件名。npm

測試,顧名思義,就是測試文件,若是隻有spec.js測試文件,而沒有被測試的文件,固然就沒有coverage了。因此加上被測試的文件便可。json

好比報錯的時候個人目錄結構是:單元測試

-tests
  -unit
    -testMatchers.spec.js

後來我把被測試文件放到一個專門的文件夾裏面就能夠,修復後的文件目錄是:測試

-tests
  -helper
    -testMatchers.js
  -unit
    -testMatchers.spec.js

因此被測試的文件就是./helper/testMatchers.js,而coverage的覆蓋率指的是對這個文件測試的覆蓋率,並非./unit/testMatchers.js這個文件的覆蓋率哦~~code

相關文章
相關標籤/搜索