我們可以為go程式編寫三類測試,即:功能測試(test)、基準測試(benchmark),也稱效能測試(example)
測試檔案的約定
測試檔案的主名稱應該以被測試檔案主名稱為先導,並且以_test為字尾。例:demo.go 的測試檔名稱應為demo_test.go。
一般情況下乙個測試檔案只給乙個原始碼檔案做測試,demo_test.go只測試demo.go檔案。
測試檔案與被測試檔案應該放在同乙個**包內
函式的名稱和簽名的規定
對於功能測試函式來說,其名稱必須以test為字首,並且引數列表中只應有乙個*testing.t型別的引數宣告。
對於效能測試函式來說,其名稱必須以benchmark為字首,並且唯一引數的型別必須是*testing.b型別的。
對於示例測試函式來說,其名稱必須以example為字首,對函式的引數列表沒有強制規定。
package demo
import
("fmt"
"testing"
)//功能測試
func
testmethod
(t *testing.t)
//基準測試
func
benchmarkmethod
(b *testing.b)
//效能測試
func
examplemethod
(t *testing.t)
func
method
(t *testing.t)
go test 命令
go test 命令,會自動讀取原始碼目錄下面名為 *_test.go 的檔案,生成並執行測試用的可執行檔案。
執行go test 命令會執行符合規定的測試**;
go test命令就會針對每個被測**包,依次地進行構建、執行包中符合要求的測試函式,清理臨時檔案,列印測試結果。
命令:
go test demo #go test [目錄]
這裡是否讀快取不會影響我們的測試結果,如果想清初快取可以執行: go clean -cache
效能測試
#格式:go test -bench=. -run=^$ [目錄]
go test -bench=. -run=^$ demo
-bench= 指要進行效能測試輸出的內容:. 需要執行任意名稱的效能測試函式(符合規則)
-run=^$ 需要執行哪些功能的測試函式
^$ 只執行名稱為空的功能測試函式(不執行任何功能函式)
function testbenchmark test
goos: windows
goarch: amd64
pkg: demo
benchmarkmethod-8 benchmark test
benchmark test
benchmark test
benchmark test
benchmark test
2000000000 0.00 ns/op
pass
ok demo 0.262s
go語言 並行程式 wordcount
go在設計的時候,就有針對並行的語法 channel 和goroutine 前者 可以很方便的進行訊息和資料傳遞,在取資料和拿資料的時候可以不用關心底層實現,用 進行賦值 這裡必須加time.sleep 不然程式很快就結束,read 和 write 甚至都來不及執行。這裡和linux 執行緒程式設計...
關於進行程式測試安排的一點想法
人們往往樂於發現別人程式設計的錯誤而害怕揭露自己所寫的 的問題。或者是客觀上,由於知識的侷限,還無法很好地發現自己所犯的編碼錯誤,如果想到了,一開始他就會寫得很好。我想在乙個專案開發中,應該讓測試從開發的程式設計師工作中分離出來,由另一部分人專門做測試,測試人員會唯恐不發現程式設計人員的 問題。在下...
Go語言基礎 上 怎樣書寫 Go 語言程式?
第乙個go語言程式。在同乙個 module 裡匯入另乙個 package 新建資料夾ch01。然後在ch01內新建資料夾demo01。最後在demo01內檔案main.go。最後在main.go裡書寫一下內容 注意所有標點都是英文半形 code 1 1 package main import tim...