golang 單元測試&&性能測試

一:單元測試

1.爲何要作單元測試和性能測試

  • 減小bug
  • 快速定位bug
  • 減小調試時間
  • 提升代碼質量

2.golang的單元測試

  • 單元測試代碼的go文件必須以_test.go結尾
  • 單元測試的函數名必須以Test開頭,是可導出公開的函數
  • 測試函數的簽名必須接收一個指向testing.T類型的指針,而且不能返回任何值

3.golang單元測試組

  • 有好幾個不一樣的輸入以及輸出組成的一組單元測試

4.測試覆蓋率

  • go test -cover 直接輸出覆蓋率
  • go test -run TestAll 指定要運行的單元測試函數
  • go test -cover -coverprofile=c.out
  • go tool cover -html=c.out -o coverage.html 輸出具體的代碼覆蓋狀況

二:性能測試

  • 執行全部函數 go test -bench=".*"html

  • 執行指定函數 go test -bench="BenchmarkWithPool"git

  • 生成內存和cpu分析文件 go test -bench="BenchmarkWithPool" -cpuprofile cpu.out -memprofile mem.outgithub

  • 分析cpu文件 go tool pprof cpu.outgolang

  • 分析內存文件 go tool pprof mem.out函數

  • 輸出png圖 圖中紅色方塊面積越大 證實申請的內存越大或者消耗cpu越多性能

源碼連接單元測試

相關文章
相關標籤/搜索