218

このgo testコマンドは*_test.go、1 つのディレクトリ内のファイルのみを対象としています。

プロジェクト全体が必要ですgo test。つまり、テストはdir 内のすべての*_test.goファイルと、./dir の下のすべての子ツリー dir をカバーする必要があります./

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

4

3 に答える 3

428

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

$ go test ./...

これにより、特定のディレクトリに対してすべてのテストが実行されます。

$ go test ./tests/... ./unit-tests/... ./my-packages/...

これにより、次のプレフィックスが付いたインポート パスを使用してすべてのテストが実行されますfoo/

$ go test foo/...

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

$ go test foo...

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

$ go test ...
于 2013-05-03T07:05:11.660 に答える
67

Go 1.9 以降、使用

go test ./...

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

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

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

于 2016-03-07T20:01:28.763 に答える