go test
Go語言基礎之單元測試
參考URL: https://www.cnblogs.com/nickchen121/p/11517443.html
go 語言的test代碼寫起來和運行起來都相對簡單。
但是也有遵循一定的命名規則:
- 文件名要以 ‘_test.go’ 結尾
- 測試函數以 ‘Test’ 開頭
- 測試函數的簽名必須接收一個指向testing.T類型的指針作爲參數,並且該測試函數不能返回任何值
go test命令
go test命令(Go語言測試命令)完全攻略
參考URL: http://c.biancheng.net/view/124.html
這裏介紹幾個常用的參數:
-bench regexp 執行相應的 benchmarks,例如 -bench=.;
-cover 開啓測試覆蓋率;
-run regexp 只運行 regexp 匹配的函數,例如 -run=Array 那麼就執行包含有 Array 開頭的函數;
-v 顯示測試的詳細命令。
demon
go test -run "TestDeterministicPrivateKeyGeneration" bls_test.go bls.go types.go
go test單元測試變量undefined錯誤
第一次開發需求的時候遇到的問題,用go test xxx_test.go xxx.go的命令執行單個測試文件的時候,在xxx.go中可能引用到包下其他文件的變量,這時候編譯就會報錯:變量undefined。
解決方法
如果引用的文件不太多的話,把所有用到的文件一同編譯就行了。如xxx.go文件中用到了aaa.go中的變量,那執行
go test xxx_test.go xxx.go aaa.go
如果是引用關係比較複雜,存在多級引用,建議直接在包目錄下執行go test,運行該包下所有的測試文件。