mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-11-04 13:33:41 +00:00
1.1 KiB
1.1 KiB
11.1. go test
go test
是一個按照一定的約定和組織的測試代碼的驅動程序. 在包目錄內, 以 _test.go
爲後綴名的源文件並不是go build
構建包的以部分, 它們是 go test
測試的一部分.
早 *_test.go
文件中, 有三種類型的函數: 測試函數, 基準測試函數, 例子函數. 一個測試函數是以 Test 爲函數名前綴的函數, 用於測試程序的一些邏輯行爲是否正確; go test
會調用這些測試函數並報告測試結果是 PASS 或 FAIL. 基準測試函數是以Benchmark爲函數名前綴的函數, 用於衡量一些函數的性能; go test
會多次運行基準函數以計算一個平均的執行時間. 例子函數是以Example爲函數名前綴的函數, 提供一個由機器檢測正確性的例子文檔. 我們將在 11.2 節 討論測試函數的細節, 在 11.4 節討論基準測試函數的細節, 在 11.6 討論例子函數的細節.
go test
命令會遍歷所有的 *_test.go
文件中上述函數, 然後生成一個臨時的main包調用相應的測試函數, 然後構建並運行, 報告測試結果, 最後清理臨時文件.