Go語言學習草稿 12 測試

2021-10-23 19:23:56 字數 2349 閱讀 4831

package main

import

("strings"

)// 待測試的字串切割函式

func

split

(str string

, sep string)[

]string

ret =

(ret, str[:]

)return ret

}func

main()

(單元測試的檔名必須是原檔名+_test)

package main

import

("reflect"

"testing"

)func

testsplit

(t *testing.t)

if!reflect.

deepequal

(got, want)

}func

test2split

(t *testing.t)

if!reflect.

deepequal

(got, want)

}// 子測試

// 通過 go test -run=test3split/case_2 可以執行乙個子測試用例

func

test3split

(t *testing.t)

testgroup :=

map[

string

]testcase,}

,"case_2":,

},}for name, c :=

range testgroup })

}}// 測試覆蓋率

// go test -cover

// 將覆蓋率輸出到檔案

// go test -cover -coverprofile=cover.out

// 用網頁檢視輸出的覆蓋率

// go tool cover -html=cover.out

//// idea 可以編輯測試的屬性, 在go tool augment中增加-cover選項

package main

import

"testing"

func

benchmarksplit

(b *testing.b)

}// benchmark需要用 go test -bench=split執行

// 輸出結果

// benchmarksplit-4 1331119 840 ns/op // 數字4表示gomaxprocs

// pass

// 使用 go test -bench=split -benchmem 檢視記憶體操作情況

// 並行測試

func

benchmarksplitparallel

(b *testing.b)})

}

package main

import

("flag"

"fmt"

"os"

"runtime/pprof"

"time"

)func

argstest()

func

flagtest()

// 一段有問題的**

func

logiccode()

}}func

main()

pprof.

startcpuprofile

(file)

defer file.

close()

defer pprof.

stopcpuprofile()

}for i :=

0; i <

6; i++

time.

sleep(20

* time.second)

if ismempprof

pprof.

(file)

defer file.

close()

}}// 然後用 go tool pprof cpu.pprof 進入pprof的互動模式

// 輸入top顯示所有函式的時間情況

// 輸入list logiccode檢視logiccode的時間占用情況

// 也可以使用 go-torch工具 檢視火焰圖

Go語言學習草稿 5 結構體

package main import encoding json fmt type myint int32 自定義乙個myint型別,實際是int32 type intalias int64 型別別名 func customtypetest 定義person結構體.結構體是值型別 type per...

go語言學習12(結構體)

格式 type 結構體名稱 struct 結構體如果需要匯出到其他包用,則名字首字母需要大寫 結構體中成員如果需要在其他包中引用,也需要首字母大寫。例如 type teststruct struct 上面結構體名 teststruct 可以被其他包引用 同理其成員 fieldout 也可以被其他包引...

GO語言學習

sudo apt get install golang但是用ubuntu的庫安裝有幾個不好的地方 因此建議不要使用ubuntu的庫安裝golang環境 golang社群的安裝指導 wget tar c usr local zxf go1.6.2.linux amd64.tar.gz設定環境變數,修改...