之前看了go官方的github上關於golang的單元測試,現在總結一下關鍵的地方。
單個測試
檔名必須是_test.go結尾的,這樣在執行go test的時候才會執行到相應的**
你必須import testing這個包
所有的測試用例函式必須是test開頭 測試用例會按照源**中寫的順序依次執行
測試格式:func test***(t *testing.t),***部分可以為任意的字母數字的組合,但是首字母不能是小寫字母[a-z],例如testintdiv是錯誤的函式名。
函式中通過呼叫testing.t的error, errorf, failnow, fatal,fatalif方法,說明測試不通過,呼叫log方法用來記錄測試的資訊。
舉個例子
package gotest
import (
"testing"
)func division(a, b float64) (float64, error)
return a / b, nil
}func test_division_1(t *testing.t) else
}func test_division_2(t *testing.t)
我們在專案目錄下面執行go test,就會顯示如下資訊
— fail: test_division_2 (0.00 seconds)壓力測試gotest_test.go:16: 就是不通過
fail
exit status 1
fail gotest 0.013s
壓力測試用來檢測函式(方法)的效能,和編寫單元功能測試的方法類似
壓力測試用例必須遵循如下格式,其中***可以是任意字母數字的組合,但是首字母不能是小寫字母
func benchmark***(b *testing.b) gotest不會預設執行壓力測試的函式,如果要執行壓力測試需要帶上引數-test.bench,語法:-test.bench=」test_name_regex」,例如go test -test.bench=」.*」表示測試全部的壓力測試函式
在壓力測試用例中,請記得在迴圈體內使用testing.b.n,以使測試可以正常的執行
檔名也必須以_test.go結尾
例子
package gotest
import (
"testing"
)func benchmark_division(b *testing.b)
}func benchmark_timeconsumingfunction(b *testing.b)
}
我們執行命令go test -file webbench_test.go -test.bench=」.*」,可以看到如下結果:
pass
benchmark_division
500000000
7.76
ns/op
benchmark_timeconsumingfunction
500000000
7.80
ns/op
okgotest
9.364s
上面的結果顯示我們沒有執行任何test***的單元測試函式,顯示的結果只執行了壓力測試函式,第一條顯示了benchmark_division執行了500000000次,每次的執行平均時間是7.76納秒,第二條顯示了benchmark_timeconsumingfunction執行了500000000,每次的平均執行時間是7.80納秒。最後一條顯示總共的執行時間。
"test*"
go Test 單元測試 測試框架
1.建立乙個名為 test.go 的檔案 如果是包中的單元測試,就在包所在目錄下建立該檔案 並將下面的 新增到其中,函式命名統一為test t testing.t package main 包中的單元測試main替換成包名 import testing func testsum t testing....
單元測試 單元測試文章收藏
前言 前段時間公司計畫做自動化測試,自己也打算圍繞幾個點做相關調研,現在想想呢?其實對自動化測試的概念都還不是十分清晰,當時主要還是圍繞 單元測試 向qa小夥伴學習了一段時間,現由於公司重組,學習中斷,這裡簡單記錄一些單元測試好文,留待後續參考.什麼叫自動化測試?自動化測試覆蓋率?覆蓋率如何做到的?...
單元測試之Django單元測試
每個應用,自帶tests.py 整合在django的專案檔案裡,更多是開發人員寫django自動的測試執行 3.1 前後置方法執行特點 django.test.testcase類主要由前 後置處理方法和test開頭的方法組成 特點 繼承於django.test.testcase 測試用例都是test...