Goとtest coverage

1,178 views
980 views

Published on

第16回 Cloud Foundry 輪読会

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,178
On SlideShare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Goとtest coverage

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

×