欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go工具鏈之go tool cover使用方法和示例詳解

 更新時間:2023年07月19日 09:23:42   作者:路多辛  
go tool cover是Go工具鏈中的一個命令,作用是分析測試用例的代碼覆蓋率,本文將對go tool cover 作用,使用方法和使用場景作一個簡單的介紹,感興趣的同學可以參考閱讀一下

go tool cover 作用

go tool cover 是 Go 工具鏈中的一個命令,作用是分析測試用例的代碼覆蓋率。通過對測試覆蓋文件進行分析,幫助開發(fā)人員和測試人員了解在測試中哪些代碼執(zhí)行了以及執(zhí)行了多少次。

通過代碼覆蓋率分析可以知道測試用例執(zhí)行后覆蓋了多少代碼行、分支和語句以及是否存在未被測試用例覆蓋的代碼,有助于發(fā)現代碼中的潛在問題和錯誤,提高代碼的質量和可靠性。

go tool cover 使用方法和使用示例

首先需要提供使用 go test 命令生成的代碼覆蓋文件(也可提供通過其他方式生成的和 go test 生成的文件格式一致的文件)。舉個例子,以 github.com/luduoxin/json-validator-go 項目為例,clone 代碼后,切換到項目的 validator 目錄,打開終端,執(zhí)行如下命令:

 $ go test -coverprofile=c.out

截取 c.out 的前兩行內容如下

mode: set
github.com/luduoxin/json-validator-go/validator/scanner.go:11.30,15.2 3 

第二行每個部分代表的意思如下:

"文件:起始行.起始列,結束行.結束列 該基本塊中的語句數量 該基本塊被執(zhí)行到的次數"

接下來看下使用go tool cover 來分析上面生成的文件 c.out 的方法,使用如下命令來查看每個方法的覆蓋率和總的覆蓋率

$ go tool cover -func=c.out

默認是將結果輸出到標準輸出,可以使用 -o 將結果輸出到其他地方,例如輸出到文件:

$ go tool cover -func=c.out -o coverage.out

使用如下方法生成一個 html 頁面并且自動打開瀏覽器來展示覆蓋率的詳細情況:

$ go tool cover -html=c.out

這樣可以非常直觀地查看代碼覆蓋率的情況,已被覆蓋的代碼被標記為綠色(綠色越深,表示被覆蓋的次數越多)、未被覆蓋的代碼被標記為紅色、不需要檢測的代碼被標記為灰色,將鼠標移到代碼塊上,還會彈出對應的被覆蓋次數。也可以不自動打開瀏覽器展示,而是將 html 內容輸出到其他地方:

$ go tool cover -html=c.out -o coverage.html

要生成覆蓋文件,首先需要對源代碼插樁,使用 go tool cover 可以生成插樁后的代碼,例如:

go tool cover -mode=set -var=CoverageVariableName scanner.go

執(zhí)行后會輸出插樁后的源代碼到標準輸出。

go tool cover 使用場景

可以用于以下場景:

  • 開發(fā)人員可以用于分析單元測試用例的覆蓋率,通過分析單元測試用例的覆蓋率,以優(yōu)化單元測試用例。
  • 測試人員可以用于分析測試用例的覆蓋率,通過一定的手段,隨著測試用例的不斷執(zhí)行,持續(xù)生成覆蓋文件,然后使用 go tool cover 分析覆蓋率,發(fā)現可能存在的測試盲點和未被測試用例覆蓋的代碼。

到此這篇關于Go工具鏈之go tool cover使用方法和示例詳解的文章就介紹到這了,更多相關go tool cover使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Go語言字符串拼接方式與性能比較分析

    Go語言字符串拼接方式與性能比較分析

    這篇文章主要為大家介紹了Go語言字符串拼接方式與性能比較示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • go的defer和閉包示例說明(非內部實現)

    go的defer和閉包示例說明(非內部實現)

    這篇文章主要為大家介紹了go的defer和閉包示例說明(非內部實現),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Go語言編譯時為exe添加圖標和屬性信息的方法

    Go語言編譯時為exe添加圖標和屬性信息的方法

    在使用Go語言開發(fā)應用程序時,有個非常方便的地方就是編譯得到的可執(zhí)行文件可以不依賴任何動態(tài)鏈接庫、并且不需要任何運行環(huán)境即可運行,本文給大家介紹Go編譯時為exe添加圖標和屬性信息的方法,需要的朋友可以參考下
    2023-09-09
  • Go本地測試小技巧解耦任務拆解

    Go本地測試小技巧解耦任務拆解

    這篇文章主要為大家介紹了Go本地測試解耦任務拆解及溝通詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Go Web 編程中的模板庫應用指南(超詳細)

    Go Web 編程中的模板庫應用指南(超詳細)

    這篇文章主要介紹了Go Web 編程中的模板庫應用指南,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • 初探Golang數據結構之Slice的使用

    初探Golang數據結構之Slice的使用

    在學習Go語言時,一直對數組和切片的使用場景好奇,不明白為什么推薦使用切片來代替數組,所以本文就來和大家梳理一下Slice切片的相關知識吧
    2023-09-09
  • goland 清除所有的默認設置操作

    goland 清除所有的默認設置操作

    這篇文章主要介紹了goland 清除所有的默認設置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Golang驗證器之validator是使用詳解

    Golang驗證器之validator是使用詳解

    Validator是一個?Golang?的第三方庫,用于對數據進行校驗,常用于?API?的開發(fā)中,對客戶端發(fā)出的請求數據進行嚴格校驗,防止惡意請求。本文通過示例詳細講解了Validator的使用,需要的可以參考一下
    2022-08-08
  • go語言?http模型reactor示例詳解

    go語言?http模型reactor示例詳解

    這篇文章主要介紹了go語言?http模型reactor,接下來看一段基于reactor的示例,這里運行通過?go?run?main.go,本文結合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • golang處理TIFF圖像的實現示例

    golang處理TIFF圖像的實現示例

    本文介紹了在Go語言中處理TIFF圖像,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-03-03

最新評論