Jay
Jay

Reputation: 20166

How do you run `go test` when test files are within a module?

When you have pulled in a module, into your project, how do you run test cases within that module?

i.e. I have done:

go get my.repo.com/repo/mymodule

And then try to test something in it:

server> go test src/my.repo.com/repo/mymodule/my_test.go 
# command-line-arguments
src/my.repo.com/repo/mymodule/article_test.go:4:2: cannot find package "mymodule" in any of:

Are we supposed to check out our modules separately and test that way? I can't quite work out what to do. It seems that when I go run it knows how to find the module I have fetched, but when I go test, it "can't find it" in the path.

Upvotes: 3

Views: 6272

Answers (1)

icza
icza

Reputation: 418575

go test expects packages, not folders relative to $GOPATH.

So leave out the leading src/ and the trailing file name, and it'll work:

go test my.repo.com/repo/mymodule

If the current directory is the package folder you want to test, you can even omit it, e.g.

cd $GOPATH/src/my.repo.com/repo/mymodule
go test

For reference see Command go / Test packages, also run

go help test

Upvotes: 7

Related Questions