[Go 06] 寫測試並產出一目瞭然的網頁版覆蓋率報告 再也不用怕遺漏
本章介紹:
- 為上一篇 Gin 框架的 User & PostName func.寫個簡單測試
- 跑測試並瞭解 coverage 覆蓋率,產生測試報告(20210702 有新增 vsocde 用法補充)
說明:新建一個檔案XX_test.go,並為 func 取名 Test XXX(t *testing.T)
1 | //測試打GET /api/v1/user 去跑User() 會拿到“OK” |
測試單一個 function
如果用 VS code,可以在上方看到 run test | debug test 按鈕可以按,十分方便
測試單一檔案內所有測試
cover 有帶的話會算出覆蓋率,並要在該目錄下去執行,這邊跑出來結果大約有 57.1% 的覆蓋
1 | $go test -v -cover=true user_test.go user.go |
測試整個專案
1 | 如果是在main的目錄要往子目錄找 |
產生測試覆蓋(coverage)報表-gotest
1 | go test -coverprofile=coverage.out ./... |
這個真的很酷,用網頁產生報告,而且非常視覺化,
可以看出剛剛沒有寫到的 UserName()測試為紅色
20210702 補充 :
其實後來發現 vscode 在跑完 package test 後,右邊側欄就會跑出覆蓋的條線了
如果只是要在測試時查看可以直接用IDE的便利性即可.
當然寫測試還有很多判斷的條件等等,是否等於,是否不等於,各種輸出可能.
寫完之後,可以為下一次更動後確認邏輯,看跑過測試真的很有療癒的感覺!!!:grin:
覺得有疑問嗎?可以再進一步看看參考文章:
[Go 06] 寫測試並產出一目瞭然的網頁版覆蓋率報告 再也不用怕遺漏
https://minilabmemo.github.io/2020/05/08/05-go-test-coverage/