Golang 基礎系列十九 Go語言單元測試

2021-09-25 01:24:37 字數 2260 閱讀 6131

格式:func test***(t *testing.t)

package cal

func

add(num1, num2 int

)int

package cal

func

mul(num1, num2 int

)int

//add_test.go

package cal

import

("testing"

)func

testadd

(t *testing.t)

}func

testmul

(t *testing.t)

}

執行結果如下:

//單元測試命令列

$ go test add_test.

go add.

go mul.

gook command-line-arguments 0.072s

$ go test -v add_test.

go add.

go==

= run testadd

--- pass: testadd (

0.00s)

=== run testmul

--- pass: testmul (

0.00s)

pass

ok command-line-arguments 0.070s

//執行指定單元測試用例

$ go test -v -run testadd add_test.

go add.

go mul.

go==

= run testadd

--- pass: testadd (

0.00s)

pass

ok command-line-arguments 0.072s

問題

注意 testing.t提供了幾種日誌輸出方法

方 法描述

log列印日誌,同時結束測試

logf

格式化列印日誌,同時結束測試

error

列印錯誤日誌,同時結束測試

errorf

格式化列印錯誤日誌,同時結束測試

fatal

列印致命日誌,同時結束測試

fatalf

格式化列印致命日誌,同時結束測試

直接列印:logerrorfatal

格式化列印:logferrorffatalf

自定義測試時間

通過-benchtime引數可以自定義測試時間,例如:

$ go test -v -benchtime=

2s -bench=

. benchmark_test.

gogoos: windows

goarch: amd64

benchmarkhello-

430000000

85.1 ns/op

pass

ok command-line-arguments 2.714s

當你不設定-benchtime t時,預設值是1秒

testing.b提供了幾種方法【testing.b擁有testing.t的全部介面】

方法描述

starttimer()

啟動計時

stoptimer()

停止計時

resettimer

重置計時

setbytes()

設定處理位元組數

reportallocs()

報告記憶體資訊

runn(n int)

執行乙個基準函式

go test裡面還有很多的flags表示 例如:-parallel n-cover-vet list-parallel n

Golang 基礎系列十六 Go 語言介面

go 語言中的介面就是方法簽名的集合,介面只有宣告,沒有實現,不包含變數。定義介面 type 介面名 inte ce 例子 type isay inte ce 實現介面 例子 定義介面的實現類 type chinese struct 實現介面 func chinese sayhi 中國人 type ...

Golang 入門系列(一)Go環境搭建

go語言的優劣,這裡就不介紹了,下面直接講go 的安裝 安裝go 的時候,安裝程式會自動把相關目錄寫到系統環境。但是如果是zip 的安裝,需要自己手動新增。主要配置以下幾個 當環境變數都配置完成之後,go 就已經安裝完畢了。開啟命令列,執行 go 命令,就可以看到如下的提示了。gopath go 的...

Golang 入門系列(一)Go環境搭建

go語言的優劣,這裡就不介紹了,下面直接講go 的安裝 安裝go 的時候,安裝程式會自動把相關目錄寫到系統環境。但是如果是zip 的安裝,需要自己手動新增。主要配置以下幾個 當環境變數都配置完成之後,go 就已經安裝完畢了。開啟命令列,執行 go 命令,就可以看到如下的提示了。gopath go 的...