jest 的 coverage 提示 unknown 的解決方案


概述

這幾天玩 jest ,我在運行單元測試之后 coverage 總是顯示 unknown,花了很多時間排查原因,最后終於想明白了,記錄下來,供以后開發時參考,相信對其他人也有用。

coverage參數

首先最可能的原因是,命令中沒有帶--coverage參數。一般 github 的 issue 里面都是說的這個原因。

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

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

所以當執行npm run test:unit的時候,會自動帶上--coverage參數。

coverage 需要測試文件

另一個原因是,我們沒有指明需要coverage的文件名。

測試,顧名思義,就是測試文件,如果只有spec.js測試文件,而沒有被測試的文件,當然就沒有coverage了。所以加上被測試的文件即可。

比如報錯的時候我的目錄結構是:

-tests
  -unit
    -testMatchers.spec.js

后來我把被測試文件放到一個專門的文件夾里面就可以,修復后的文件目錄是:

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

所以被測試的文件就是./helper/testMatchers.js,而coverage的覆蓋率指的是對這個文件測試的覆蓋率,並不是./unit/testMatchers.js這個文件的覆蓋率哦~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM