goとtest coverage
Post on 27-May-2015
519 Views
Preview:
DESCRIPTION
TRANSCRIPT
GoとTest coverage
2014/1/17
自己紹介Name : Sota NakajimaTwitter : @soldier_nakaji
Hobby :
・既存言語のアイデアをもとに生み出された
新しいプログラミング言語 (2009/11/10誕生)
2014年にGoの時代が来る!(日経ソフトウェア記事)http://coin.nikkeibp.co.jp/coin/itpro/hansoku/nsw201402_1.html
Goとは
・早いコンパイル速度、実行速度
・メモリ管理(GC)
・マルチコア活用(goroutine)
・便利なコマンド
・整形(go fmt)
・パッケージ収集(go get)
・テスト(go test)
・ドキュメント作成・閲覧(go doc)
Goの特徴
・他の言語に戻れなくなる。
Goの特徴
GoのTestの条件
・ ファイル名が _test.go で終わる
・ 関数名がTestXXX
・ シグネチャ func (t *testing.T)を持つ
Testを作成する1
Testを作成する2coverage.go coverage_test.go
Testを実行する# ディレクトリ構成
$ tree ../covertest
../covertest
├── coverage.go
└── coverage_test.go
# Testを実行
$ go test ./...
ok covertest 0.001s
# Testを実行(詳細表示)
$ go test -v ./...
=== RUN TestSize
--- PASS: TestSize (0.00 seconds)
PASS
ok covertest 0.001s
ちなみに...
Goの標準テストパッケージにはAssertがない
理由:
プログラマが適切なエラーハンドリングをしなくなるから
しかし...
テスト用ライブラリ(Assert機能あり)がたくさんできてる・・・
・https://github.com/stretchr/testify
・https://github.com/onsi/ginkgo
・https://github.com/franela/goblin
・http://godoc.org/launchpad.net/gocheck
・
・
Coverage測定する1
$ go test -cover ./...
ok covertest 0.001s coverage: 42.9% of statements
・Go1.2 (2013/12/1 Released) から使えるように http://golang.org/doc/go1.2#cover
・使い方はカンタン
Coverage測定する2
$ go test -coverprofile=coverage.out ./...
ok covertest 0.002s coverage: 42.9% of statements
$ go tool cover -html=coverage.out
・テストが通っていない個所を特定する
Coverage測定する3通過(緑)、対象外(灰色) coverage_test.go
おわり
Goを使ってみたくなりましたか?
top related