6 章 Go のテストに関するツールセット
6.2 testing パッケージ入門
-v <正規表現>
で特定のファイルに限定してテストを実行することができる- Go 1.10 からテスト実行内容がキャッシュされる
go clean -testcache
でテスト結果のキャッシュをクリアする
- Testable Examples という、実行例をそのままテストとして実行できる機能もある
- Go Blog の記事もある
ExampleXXX
という関数を作成し、// Output: XXX...
というコメントを記述することによって標準出力内容をテストできる- Godoc にも実行例として出力される
// Unorderd output:
だと標準出力の順番が記述順と一致しなくても通る
func ExampleHello() {
fmt.Println("Hello")
// Output: Hello
}
GoDoc に出力される Example のルールは以下:
func ExampleFoo() // documents the Foo function or type
func ExampleBar_Qux() // documents the Qux method of type Bar
func Example() // documents the package as a whole
6.2 ベンチマーク入門
- ベンチマークの実行関数は
BenchmarkXXX()
という命名規則で作成する。実行は、go test -bench
によって行う - Go 1.7 からサブベンチマークの機能が追加された。
func BenchmarkX(b *testing.B) {
b.Run("n=3", func(b *testing.B) { ... })
b.Run("n=10", func(b *testing.B) { ... })
b.Run("n=100", func(b *testing.B) { ... })
}