goland學習-go常用命令使用
1.跨平台編譯:env GOOS=linux GOARCH=amd64 go build
2.獲取go第三方包:go get -u github.com/go-sql-driver/mysql 從github上面獲取mysql並安裝到本地
3.完全標准化go代碼:go fmt
4.go test模塊
a)運行當前包目錄下面的tests
b)常用命令go test或者go test -v
c)test的例子,一般按照XXX_test.go命名
d)每個test文件一定要import testing
e)每一個test文件里面的每一個test case一定要符合Test的形式,否則不執行
f)test case的入參為 t *testing.T或者b *testing.B (t.Errof("")退出test case)
g)t.SkipNow()可以當前想要跳過當先運行的test case,一定要寫在test case的第一行
h)test順序,因為go test 並不會保證test case按照編寫順序運行,只是大多數情況會按照順序執行,這個使用使用t.Run()函數
t.Run("填入名稱",函數名稱)
這個時候testPrint會比testPrint2優先執行
i)使用testMain來初始化test,比如數據庫連接,文件打開.當test的文件里面寫了TestMain之后其他的test case會不會執行取決於TestMain有沒有調用m.Run(),如果沒有寫,那么其他的test case 都不會執行.
5. go test -bench=.
a)benchmark函數一般以benchmark開頭
b)benchmark的case一般會跑b.N次,而且沒吃執行都會如此
c)實際運行時間會根據實際case的執行時間是否穩定鄭家b.N的次數.(就是會一直跑直到運行時間穩定為止)
d)benchmark 的case本身也是test case之一,所以如果寫了TestMain那么TestMain也要帶有m.run()才會運行
e)如果是帶了-bench參數只會測試帶有benchmark簽名的函數
f)要注意的是benchmark測試的函數本身不會到達穩態,那么benchmark的命令會永遠的執行不完.