網頁

2021/8/24

Visual Studio Code vscode-go 開啟測試程式覆蓋率高光效果 enable test coverage highlight

在Visul Studio Code(VSCode)的Go擴充套件開啟Go測試程式覆蓋高光效果。


測試程式覆蓋率(test code coverage)是指主程式碼有被測試程式走訪過的部分,而未被測試程式走過的部分則未覆蓋。

VSCode Go已內建code coverage的高光效果(highlight)預設為關閉。開啟的方式為在VSCode設定(Settings)頁面(快速鍵 macOScommand ⌘ + ,;Windows:Ctrl + ,)搜尋"Go Cover On Save",然後在找到的[Go: Cover On Save]勾選即可。

[Go: Cover On Save]選項實際位置在Settings -> Extension -> Go




除了在VSCode的Settings UI設定,也可按直接F1或macOS:command ⌘ + shift ⇧ + P;Windows: Ctrl + Shift + P開啟[Command Palette]命令列輸入"Preference: Open Settings(JSON)"打開settings.json檔。



settings.json加入"go.coverOnSave": true屬性開啟[Go: Cover On Save]。

settings.json

{
    // other settings
    ...
    "go.coverOnSave": true
}


[Go: Cover On Save]啟用之後存檔Go程式後就會背後自動執行go test -coverprofile產出覆蓋率資料用以讓VS Code顯示覆蓋率高光效果。

例如「Golang Testify mock簡單範例」的main.go,在開啟[Go: Cover On Save]後其測試程式main_test.go的覆蓋率會在每次存檔main.go時自動高光顯示在在main.go的編輯畫面中。




高光效果只會出現在目前正在編輯的並存檔的檔案。

存檔的同時會在下方的OUTPUT會印出執行go test -coverprofile的訊息及package的測試覆蓋率。

Running tool: /usr/local/bin/go test -timeout 30s -coverprofile=/var/folders/g5/n0g9p38s7xj949q3q8kk7h580000gn/T/vscode-goKtsG98/go-code-cover abc.com/demo

ok  	abc.com/demo	0.114s	coverage: 66.7% of statements


沒有留言:

張貼留言