hardPass
hardPass

Reputation: 20801

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

The go test command covers *_test.go files in only one dir.

I want to go test the whole project, which means the test should cover all *_test.go files in the dir ./ and every children tree dir under the dir ./.

What's the command to do this?

Upvotes: 313

Views: 158249

Answers (4)

iston
iston

Reputation: 1

After checking out several answers on the topic (SO and elsewhere) the go-way seems to be using tools already provided (e.g. by OS).

For multi-module projects most find-based oneliners or 'go list ...' solutions seem to fall short so I just ended up creating bash runner script (disclaimer: in WIP state, if the previous link does not work, check this)

Upvotes: 0

zzzz
zzzz

Reputation: 91193

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 ...

Upvotes: 606

muthukumar selvaraj
muthukumar selvaraj

Reputation: 1073

Folder Structure

ProjectName/folderName1/file_test.go
ProjectName/folderName2/file1_test.go
ProjectName/folderName3/file2_test.go

go test command Command

   ProjectName$ go test -v ./...
    ProjectName$ go test  ./...
    ProjectName$ go test -cover ./...

Coverage Report for the Entire Project

ok      ProjectName/folderName1 10%
ok      ProjectName/folerName2  90%
ok      ProjectName/folerName2  85%

Upvotes: 16

user7610
user7610

Reputation: 28751

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.

Upvotes: 87

Related Questions