Go学習のために以下のサンプルコードを記載
- 構造体、配列の参照・値渡しの動作確認
- interfaceの実装例
- goroutineのテスト また、goのエコシステム・ツールも一通り試せるようにしている
- テストコード(一部のみ実装)
- ベンチマーク・プロファイリング
- ドキュメンテーション
go get
go run main.go
_test.go ファイルの Test関数がテスト対象となる。
コンパイル時に除外されるので、プロダクトコードと同じパッケージにテストファイル入れるのが一般的?
go test -v ./...
go test -v -cover ./...
# カバレッジをwebで見る
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out
Benchmark~とつく関数のパフォーマンスを計測できる。
cd <計測したいパッケージ>
go test -bench=. -benchmem
ベンチマーク計測して各処理のメモリ・CPU消費などを計測できる。
cd <計測したいパッケージ>
# 性能計測
go test -memprofile=mem.out -bench=.
go test -blockprofile=block.out -bench=.
go test -cpuprofile=cpu.out -bench=.
# pprofツールで可視化
go tool pprof -text -nodecount=10 ./struct_sample.test block.out
パッケージや公開関数などをコマンドライン上で確認できる
go doc <パッケージ名>
go doc <パッケージ名>.<関数/構造体など>
# 例
go doc ./struct_sample
go doc ./struct_sample.TestStruct
Web上で標準パッケージ、自作パッケージのドキュメントが見れる。
godoc -http ":3000"
go mod init <パッケージ名>
go get <外部パッケージ>