Goとtest coverage
Upcoming SlideShare
Loading in...5
×
 

Goとtest coverage

on

  • 567 views

第16回 Cloud Foundry 輪読会

第16回 Cloud Foundry 輪読会

Statistics

Views

Total Views
567
Views on SlideShare
567
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Goとtest coverage Goとtest coverage Presentation Transcript

  • GoとTest coverage 2014/1/17
  • 自己紹介 Name : Sota Nakajima Twitter : @soldier_nakaji Hobby :
  • Goとは ・既存言語のアイデアをもとに生み出された  新しいプログラミング言語 (2009/11/10誕生) 2014年にGoの時代が来る!(日経ソフトウェア記事) http://coin.nikkeibp.co.jp/coin/itpro/hansoku/nsw201402_1.html View slide
  • Goの特徴 ・早いコンパイル速度、実行速度 ・メモリ管理(GC) ・マルチコア活用(goroutine) ・便利なコマンド  ・整形(go fmt)  ・パッケージ収集(go get)  ・テスト(go test)  ・ドキュメント作成・閲覧(go doc)   View slide
  • Goの特徴 ・他の言語に戻れなくなる。
  • Testを作成する1 GoのTestの条件 ・ ファイル名が _test.go で終わる ・ 関数名がTestXXX ・ シグネチャ func (t *testing.T)を持つ
  • Testを作成する2 coverage.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 ・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
  • 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を使ってみたくなりましたか?