go test
コマンドカバー*_test.go
ファイルは1つのディレクトリにのみあります。
したい go test
プロジェクト全体。つまり、テストはすべてをカバーする必要があります*_test.go
dir内のファイル./
およびすべての子供ツリーdirの下のディレクトリ./
。
これを行うコマンドは何ですか?
これにより、現在のディレクトリとそのすべてのサブディレクトリですべてのテストが実行されます。
$ go test ./...
これにより、foo/
というプレフィックスが付いたインポートパスですべてのテストが実行されます。
$ go test foo/...
これにより、foo
で始まるすべてのテストインポートパスが実行されます。
$ go test foo...
これにより、$ GOPATH内のすべてのテストが実行されます。
$ go test ...
Go 1.9以降 、使用
go test ./...
Go 1.6から1.8では、./...
は、 vendor
ディレクトリ にも一致しました。ベンダーのパッケージをスキップするには、次を使用します
go test $(go list ./... | grep -v /vendor/)
ソース: https://github.com/golang/go/issues/11659 、 https://github.com/golang/go/issues/14417 、- https://github.com/go-lang-plugin-org/go-lang-idea-plugin/issues/2366 、@ nickgrimのコメント。
フォルダー構造
ProjectName/folderName1/file_test.go
ProjectName/folderName2/file1_test.go
ProjectName/folderName3/file2_test.go
go testコマンドコマンド
ProjectName$ go test -v ./...
ProjectName$ go test ./...
ProjectName$ go test -cover ./...
プロジェクト全体のカバレッジレポート
ok ProjectName/folderName1 10%
ok ProjectName/folerName2 90%
ok ProjectName/folerName2 85%