go でテストを実行する時に、複数のディレクトリを再帰的にまとめてテストしたい場合には、...
をワイルドカードとして使える。
例えば、こんな風になる。
go test github.com/taichi/myproject/...
とかすると、
- GOPATH/src/github.com/taichi/myproject/
- GOPATH/src/github.com/taichi/myproject/subdir1
- GOPATH/src/github.com/taichi/myproject/component
の中にあるテストコードが全部実行される。
Ginkgo使ってるなら、
ginkgo -r
でサブディレクトリの中身を再帰的に実行してくれる。とは言えアダプタコードを減らせる訳では無い。
ちなみに、面倒だからと言って
go test ...
とかしない事。GOROOT と GOPATH から解釈可能な名前空間を凄い勢いでトラバースしてテストを動かすので終わらなくなる。
というか、終わらなくなりかけた。CTRL+C で止めたけども。
Description of package lists によると、これは go コマンドにおける汎用的な仕様であるので、きっとgo fmt
とか他のコマンドでも使える。