How to `go test` all tests in my project?

This should run all tests in current directory and all of its subdirectories:

$ go test ./...

This should run all tests for given specific directories:

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

This should run all tests with import path prefixed with foo/:

$ go test foo/...

This should run all tests import path prefixed with foo:

$ go test foo...

This should run all tests in your $GOPATH:

$ go test ...

From Go 1.9 onwards, use

go test ./...

In Go 1.6 through 1.8, the ./... matched also the vendor directory. To skip vendored packages, you'd use

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

Sources: 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's comment.

Tags:

Testing

Go