web-dev-qa-db-ja.com

プロジェクトのすべてのテストを「テスト」する方法は?

go testコマンドカバー*_test.goファイルは1つのディレクトリにのみあります。

したい go testプロジェクト全体。つまり、テストはすべてをカバーする必要があります*_test.go dir内のファイル./およびすべての子供ツリーdirの下のディレクトリ./

これを行うコマンドは何ですか?

108
hardPass

これにより、現在のディレクトリとそのすべてのサブディレクトリですべてのテストが実行されます。

$ go test ./...

これにより、foo/というプレフィックスが付いたインポートパスですべてのテストが実行されます。

$ go test foo/...

これにより、fooで始まるすべてのテストインポートパスが実行されます。

$ go test foo...

これにより、$ GOPATH内のすべてのテストが実行されます。

$ go test ...
216
zzzz

Go 1.9以降 、使用

go test ./...

Go 1.6から1.8では、./...は、 vendorディレクトリ にも一致しました。ベンダーのパッケージをスキップするには、次を使用します

go test $(go list ./... | grep -v /vendor/)

ソース: https://github.com/golang/go/issues/11659https://github.com/golang/go/issues/14417 、- https://github.com/go-lang-plugin-org/go-lang-idea-plugin/issues/2366 、@ nickgrimのコメント。

44
user7610

フォルダー構造

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%
5
muthukumar